tags:

views:

41

answers:

1

I have a web page which has a SWF file embeded. I have an issue with the focus.

Steps to reproduce: 1)Click on a HTML Text Field which is inside a Iframe 2)Click on a Flex Field. 3)Begin to type some text.

Expected Result is the entered text should go in the Flex TextInput field but the actual Result is it goes into HTML text field.

This is the bug which was filed but closed without any resolution. The workaround suggested there doesnt work. ( bugs.adobe.com/jira/browse/SDK-12377 )

This is happening only in IE 6.0 and IE 7.0. Below is the live example. http://drumbeatinsight.com/examples/htmlcomponent/iframe/HTMLFrameInApplication.html

Any Suggestions or workaround to solve this problem are requested.

A: 

Your browser is maintaining focus instead of giving it back to the flash player. I ran into this issue when trying to 'embed' html content inside my flex app ... accomplished by floating html iframe above the flash player.

I have to hide and restore the iframe if I want to interact with flex because the iframe needs to be on top of the flash player, but all that is easy. I would find, even if I hid the iframe, flash player was never getting keyboard focus back. You need to tell the browser to give keyboard focus back to the flash player.

Now there is no really good way to determine if you need to instruct the browser to give keyboard focus back, I end up executing this javascript on every mouse down, rather inefficient, but it was the only way to gaurentee whenever my user clicked on flash player content, that the browser gave keyboard focus back.

Execute a javascript method that looks up the embeded content by name and call focus().

Basically - document.getElementById('flexEmbedID').focus();

Use the external interface to call that on stage.mouseDown(). Lots of overhead as it executes a lot, but it will fix your problem.

David