Issues w/ Away3D running in Chrome Browser

Software: Away3D 4.x

jake0101, Newbie
Posted: 09 August 2012 03:40 PM   Total Posts: 2

I’ve noticed a couple of annoying bugs/issues with the latest version of Google’s Chrome browser. These issues didn’t appear until about a week ago, when Google updated their browser (i.e. version 21.0.1180.60). The .swf I’m testing was compiled with Away3D 4.0.0 Beta and hasn’t been touched since before the Chrome update.

The first issue occurs when setting displayState to full-screen. As soon as I go to full-screen, the Away3D render just completely disappears. Standard Flash objects (i.e. movieClips, Buttons, etc.) display just fine, but everything related to Away3D disappears. The problem persists even after exiting full-screen; the .swf has to be reloaded to bring back Away3D. I have no idea what’s going on… this only happens in the latest version of Chrome… Internet Explorer, Firefox, and the standalone player all still behave normally.

The other issue is with the MOUSE_WHEEL event. The delta value is now 1/3 of what it used to be, which wouldn’t be a problem if it weren’t for the fact that it still acts normally in all other browsers and the standalone player… I realize that this inconsistency can be tested for and compensated for, but it’s still an annoyance.

The culprit here would appear to be Google Chrome (or the Flash plugin Chrome uses). Maybe I should submit this to Google and/or Adobe, but I figured I’d post here first to see if anyone else has experienced similar issues. I am admittedly a novice and completely stumped.

   

Richard Olsson, Administrator
Posted: 10 August 2012 10:58 AM   Total Posts: 1192   [ # 1 ]

Yes, there are some known issues with recent Chrome. Please report to Google and Adobe. There is unfortunately nothing we can do about these issues.

The crash issue when going into fullscreen might be an old bug that we fixed for the Gold release though. What is the size (in pixels) of your screen?

   

jake0101, Newbie
Posted: 10 August 2012 05:24 PM   Total Posts: 2   [ # 2 ]

Oh sorry, I forgot to mention that I’ve already tried rebuilding the .swf with 4.0.0.7 Gold and it doesn’t seem to fix either issue. I’ve tried going to fullscreen with 1360 x 768 and 1024 x 768 and everything in-between, but it doesn’t seem to make a difference.

Thanks for the reply, at least now I know this isn’t some fluke that’s only happening to me. I guess it’s time to try to get some feedback from Google and Adobe’s respective dev forums.

[edit] Okay… now I feel a little stupid. One of the first things I did before posting to the forums was to download the latest beta version of Flash 11.4, but that didn’t fix anything… of course, now I just remembered that Chrome has it’s own integrated Flash plugin so it ignores any other version you may install. I just disabled Chrome’s integrated plugin, (by typing “Chrome://plugins” into the address bar), and now everything’s working perfectly.

   

Richard Olsson, Administrator
Posted: 10 August 2012 06:27 PM   Total Posts: 1192   [ # 3 ]

Ok, that’s good to know. The old pre-gold full screen issue would not show itself at those relatively low resolutions anyway, so that couldn’t have been it. Seems like the Flash Player that ships with Chrome (likely Pepper-based) has issues that non-bundled Flash Player (likely not Pepper-based) plug-ins don’t.

   

Avatar
theMightyAtom, Sr. Member
Posted: 12 August 2012 06:52 AM   Total Posts: 669   [ # 4 ]

I reported this some time ago to both Adobe and Google, but no reaction so far…
https://bugbase.adobe.com/index.cfm?event=bug&id=3301601

PLEASE VOTE FOR THIS BUG, as Adobe don’t appear to realise it is ruining the Flash experience for a large number of users, including many paying customers!

https://productforums.google.com/forum/#!searchin/chrome/11,3,31,222/chrome/4ERrGTmHyAY/Qx-81cmpufkJ[1-25]

Google havn’t addressed it either, but the simply need to role back the update. The player for “all other browsers” works perfectly in Chrome.

   

jl27, Newbie
Posted: 16 August 2012 10:28 PM   Total Posts: 3   [ # 5 ]

Every person developing on Away3D should be over at the chromium site upvoting the bug report to get this fixed. Let’s get some action. Everyone. That means you… make sure they know there is a community that will not stand for such obvious stage3d bugs in Chrome’s Flash. Chrome is too important a browser to lose any more time on this.

   

Avatar
theMightyAtom, Sr. Member
Posted: 18 August 2012 10:22 AM   Total Posts: 669   [ # 6 ]

There is a new version of Flash Player for Chrome (11.3.31.227), however it DOES NOT SOLVE these issues!

Please keep voting for this fix, if you want to run Away3D in chrome!
At Adobe…
https://bugbase.adobe.com/index.cfm?event=bug&id=3301601

And at google
https://productforums.google.com/forum/#!searchin/chrome/11,3,31,222/chrome/4ERrGTmHyAY/Qx-81cmpufkJ

   

laurent, Newbie
Posted: 19 August 2012 02:28 PM   Total Posts: 29   [ # 7 ]

I have just tested the latest chrome canary build:
- The aliasing issue is fixed
- Full screen is still KO

They put the full screen bug as wontfix here: http://code.google.com/p/chromium/issues/detail?id=140758

Is there anything we can do to solve this issue:. can we extend away3d to support context destruction and creation at runtime?

 

   

jl27, Newbie
Posted: 19 August 2012 07:05 PM   Total Posts: 3   [ # 8 ]

Anti alias is basically fixed
I still have font rendering issue though
Performance is still crappy and choppy like it has been since the problem arose a few weeks ago.,

Still disappointing that chrome worked perfectly for so long and then they broke it and won’t roll it back to the working version. The fundamental issues remain in Canary.

   

Michael Plank, Newbie
Posted: 20 November 2012 08:35 AM   Total Posts: 2   [ # 9 ]

The Chrome Fullscreen bug is still not fixed right?
I’m using Chrome 23.0.1271.64 and Flash Player 11,5,31,2 Release Player on a MacBook Pro, and when switching to fullscreen in our game Starforce Delta, the Stage3D context is gone, only 2D Display List is still there.

Does anybody have news on that problem?
Thx!

   

Qbrain, Member
Posted: 27 November 2012 01:15 PM   Total Posts: 92   [ # 10 ]

Same question as Michael, is there any news?

-Q

   

Fabian Meisinger, Newbie
Posted: 08 December 2012 03:49 PM   Total Posts: 1   [ # 11 ]

We now avoid the problem in Starforce Delta by using the HTML5 fullscreen api for chrome.
This solution seems to work perfectly fine and strangely enough, brings a huge performance boost on Michael’s MacBook compared to the flash fullscreen api.

For the api features there is a small wrapper library that we use:
http://jeromeetienne.github.com/threex/docs/THREEx.FullScreen.html

We also use jQuery to manipulate the DOM.
If you are not familiar with jQuery, you should look it up. It makes life much easier grin

In order for this to work, the flash embed may need to be resized, depending on how it is placed on the site.
In our case, it is placed inside a div block with fixed size and once we request fullscreen we stretch it to the screen size.

We use something like the following code to archive this:

var $embed = $("#embed"); // the div block which contains the flash object
$embed.originalWidth $embed.width();
$embed.originalHeight $embed.height();

if (
THREEx.FullScreen._hasMozFullScreen)
 
document.addEventListener("mozfullscreenchange"resizeFullscreenfalse);
else if (
THREEx.FullScreen._hasWebkitFullScreen)
 
document.addEventListener("webkitfullscreenchange"resizeFullscreenfalse);

function 
activate() {
 THREEx
.FullScreen.request($embed.get(0)); // fullscreen can be requested for a single node in the DOM tree
 
$embed.find("object").addClass("fullscreen");
 
// we add a style class to the object, to overwrite the fixed height and width which is defined in the css.
 //#embed object.fullscreen {
 //  width: 100% !important;
 //  height: 100% !important;
 //}
 
window.addEventListener("resize"resizeFullscreen); // this part is important, because the viewport size might change while fullscreen is active
}

function deactivate() {
 THREEx
.FullScreen.cancel();
 
$embed.find("object").removeClass("fullscreen");
 
window.removeEventListener("resize"resizeFullscreen);
}

function resizeFullscreen() {
 
if(THREEx.FullScreen.activated()) {
  
$("#embed").width(window.innerWidth "px").height(window.innerHeight "px");
 
else {
  $embed
.width($embed.originalWidth).height($embed.originalHeight);
 
}
   

MaxSydof, Newbie
Posted: 28 December 2012 02:44 PM   Total Posts: 1   [ # 12 ]

Hi Fabian.
Thank you for this hint. It works!
Pepper Flash is the biggest disaster of the decade tongue wink
I used a simpler code:

function toggleFullscreen() {
 
if (!THREEx.FullScreen.available()) return;
 !
THREEx.FullScreen.activated() ? THREEx.FullScreen.request() : THREEx.FullScreen.cancel();

And run it just for chrome.

It is important to well define the CSS for flash wrapper.

<div id="flashWrapper" 
        
positionabsolute;
        
left:0px;
        
width:100%;
        
height:100%;
        
z-index1000;
"> 

It works for me.

Regards,
Mariusz

   

NoseKills, Newbie
Posted: 15 January 2013 07:51 AM   Total Posts: 8   [ # 13 ]

My 2 cents.
I haven’t found a perfect solution, but in the game i’m working on, full screen does work on Chrome and Mac with certain pre-requisites.

I have a menu mode where i only use 2D graphics. From there i move on to game mode that’s in 3D. The full screen mode works perfectly if you go into fullscreen before entering the 3D mode. If you go fullscreen mid-game, you get a white screen.

That lead me to believe that having a fresh View3D for full screen mode might help, and it seems like it did (at least in my game)  I now place everything in the scene into a ObjectContainer3D. When i want to go fullscreen, i create a new view, dispose the old one and place the Container back once i get the CONTEXT3D_RECREATED / CONTEXT3D_CREATED event from the new View3D. Of course in some cases this might be too heavy or troublesome to do but it seems to fix stuff most of the time.

Another thing i’d like to point out is that you can detect whether you’re running on Chrome’s Pepper player or Mac, and for example disable fullscreen only on those.

_isMac = Capabilities.manufacturer.indexOf(“Macintosh”) > -1;
_isPepper = Capabilities.manufacturer.indexOf(“Google Pepper”) > -1;

   

GiGBiG, Member
Posted: 30 January 2013 10:24 AM   Total Posts: 57   [ # 14 ]

NoseKills hint was illuminating: I tried the dispose-recreate solution suggested by NK, and I discovered something very interesting (and annoying) about Pepper.
Following NK suggestion I put all the 3D contents in an ObjectContainer3D and modified the fullscreen operation as follows:
1 - dispose view3D
2 - switch window/fullscreen mode
3 - on FULLSCREEN event, create a new view3D and addChild the ObjectContainer3D

I do this when I detect MacOS or Google Pepper.
Initially this didn’t work, and with a little trick I managed to understand why: I told my game to write “DISPOSE” on screen at phase 1, and “RECREATED” at phase 3. I forced the three phases method on Windows and regular player too, and I noticed a difference between regular and Pepper.

With regular player I pressed fullscreen button and:
- screen becomes black
- screen immediately reappears stretched, showing all 3D contents and the text “RECREATED” (“DISPOSE” is too fast to be visible, it is immediately substituted by “RECREATED”).

The sequence dispose-switchMode-recreate seems to be respected and we are all happy.

With Pepper player I pressed fullscreen button and:
- screen immediately stretches (not respecting the game proportions of 16:9 but preferring monitor 16:10)
- screen becomes black
- screen immediately reappears with the same 16:10 proportions
- after about half a second “RECREATED” text shows up
- 3D contents disappear immediately after

It looks like the sequence is not respected, as if the real window/fullscreen switch (with context loss) is applied AFTER the 3rd (RECREATE) phase:
- DISPOSE
- switch window/fullscreen mode (the Flash displayState change is sort of ignored, just launches the FULLSCREEN event)
- RECREATE
- effective switch of window/fullscreen mode (with context loss), that destroys the just recreated view3D

I managed to bypass this problem simply applying a delay to the RECREATE phase, to obtain the correct phases order:
- DISPOSE
- switch window/fullscreen mode (the Flash displayState change is sort of ignored, just launches the FULLSCREEN event)
- delayed (0.5sec) RECREATE…
- effective switch of window/fullscreen mode (with context loss), that WOULD destroy the just recreated view3D
- ...RECREATE

It looks like Pepper uses a different method/API to switch to fullscreen, making Flash FULLSCREEN event useless if you listen to it to execute something in a coherent order.

Now fullscreen works on Mac and Pepper too, and the view3D recreation does not change the memory usage at all, apparently (Stats does not show significant differences, but it does not show videomemory usage): you just notice the persistence of black screen for about 0.5-1 sec before the 3D contents reappear.

So, what the hell…?!

Anyway, the context loss still exhists for other situations, but at least fullscreen seems to be ok.
What do you think about this approach?

   
   

X

Away3D Forum

Member Login

Username

Password

Remember_me



X