javascriptactionscript-3flashgoogle-chromeexternalinterface

ExternalInterface in Chrome


I would like to call js function via ExternalInterface from as3 code LOCALLY, not on remote server. All browsers work great but not Chrome. Note that in flash-debug player version (C:\Windows\system32\Macromed\Flash\NPSWF32_11_9_900_170.dll, version 11,9,900,170) I have installed in Chrome it works. But in default flash player version (C:\Program Files\Google\Chrome\Application\33.0.1750.117\PepperFlash\pepflashplayer.dll, version 12.0.0.70) it doesn't work.

PS: I've also tried to open my old project (with ExternalInterface) I've developed 2 years ago -> same issue.

IDE I have used -> FlashBuilder4.6 and also tried in FlashDevelop. I am using AC_OETags.js in order to include swf into web-page.

ExternalInterface.call("someFunc","testMsg") calls when swf initializes.

Chrome version is 33.0.1750.117 m

Thanks in advance.


Solution

  • This is a bug in Chrome using the pepper plugin: https://code.google.com/p/chromium/issues/detail?id=137734

    What's happening is that the trusted locations (set here: https://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html) aren't taken into account, so any Flash <-> JS interaction is broken.

    It doesn't look like this bug is getting fixed (judging by the comments on the issue today, there's a good chance it'll get marked as a "Won't fix"), so for now there's 3 ways around it: