views:

2777

answers:

2

I am writing Flash app (Flash Player 10, AS 3.0) that is full screen capable. I got that part sorted (allowFullscreen=true, stage.displayState).

I would like to give users ability to tab through the items there and activate them using space (MouseEvent.CLICK ;-). I know that any keyboard actions are blocked in full screen mode. This Adobe's devnet page suggests that starting from Flash Player 10 some keys (tab, space, arrows) are allowed in full screen mode.

That checks out in Chrome, Firefox, Opera, Safari... but not IE (IE6 at least). IE6 is simply oblivious of the keyboard. Nothing works: tab, space... except for Esc of course ;-)

Am I missing something?
What might be wrong?
May my testing on localhost affect this?

+1  A: 

that is a bug, that comes from the browser ... i've seen multiple discussions about it, one at flashhilfe.de (probably won't help you guys), where there was a test swiff embedded on some page, and everyone tried ... on my computer even firefox and opera failed completely ...

i'm afraid, you probably can't do anything about ...

just a little side note though: from the user's point of view, it is always the best, to make your apps dynamically scalable, so the user decides which size he prefers ... many people are disturbed by apps creating pop ups or resizing browser windows ...

back2dos
A: 

I have been looking at this for a video player, the keys work fine for player 10,1,53,64 (Debug player) in FF3.6.6, cant get it to work in IE7, the tab key won't work in this either.

If you have a KeyboardEvent on the stage and listen for the key presses then you will see that they fire in full screen mode.

The MouseEvent.CLICK doesn't fire when you press Space when a button has focus so the way i got buttons to fire was to ass a KEY_DOWN listener to the stage, do a switch on stage.focus and call a function. i.e.

this.stage.addEventListener(KeyboardEvent.KEY_UP, _keyUp);

private function _keyUp(e:KeyboardEvent):void { if(this.stage.displayState != StageDisplayState.FULL_SCREEN) return; switch(this.stage.focus) { case myButtonInstance: //call function here break; } } Hope this helps.

Paul