Flash fscommand not working Internet Explorer 9

132 views Asked by At

I'm working on an e-learning project where I need to provide interaction between Flash and Moodle's SCORM Javascript API.

Actually this is done already. It was made with fscommand but when it comes to Internet Explorer 9 it stops working.

This is an old legacy project and there is a lot relying on these interactions so I can't simply change it to ExternalInterface (which I have been using in recent projects).

I've tried changing allowScriptAccess to "always" but it didn't work. I've also tried using meta http-equiv="X-UA-Compatible" with several different content values but it didn't work too.

Using any other technology also isn't an option.

If does someone have any suggestions or a solution that worked for any similar case, I would like to know.

Thanks in advance.

2

There are 2 answers

0
Têco On BEST ANSWER

Thanks for the reply, Mark. Yes, you guessed it right. I had tried EmulateIE8 and lesser, but no success.

After a lot of research, I came to a solution, but I couldn't do it without giving up on fscommand.

Before:
I had an embeded SWF calling fscommand and a Javascript API with a _DoFsCommand function that handled the SCORM API Interactions. The SCORM response were passsed back to the SWF by Javascript's native SetVariable function.

Then: I changed all my fscommand calls to ExternalInterface.call calling directly the _DoFsCommand function and passing to it its expected values. So, even giving up on Flash's fscommand I could keep the rest of the code.

Then I came to another problem, the SetVariable function varies depending on the DOM Object and the Internet Explorer version. It can be embed's function or object's function. So I had to check if the embed did have the SetVariable function before calling it. If it didnt I call it from the object.

This way I guarantee that all versions of Internet Explorer would support Flash's request and SCORM responses without major changes in my project.

0
Mark On

Digging up some old knowledge I remember you can emulate IE8. Sound like you may have tried that. meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8"

Maybe try IE7.