问候,第一次海报。
假设我的页面上有一个flash(swf)对象,我有一个特定的JavaScript类(让我们称之为“JSClass”),它与该flash对象一起使用。
JavaScript类有一些与flash对象通信的方法。
当flash对象通过swfObject嵌入到页面中时,我创建了一个JSClass的实例,并在页面上为它提供flash对象的id,以便该实例可以专门与该flash对象进行通信。
我在页面上有多个相同的flash文件,我需要区分对特定flash对象的调用
像这样:
var flashControl1 = new JSClass('flash_id_1'); var flashControl2 = new JSClass('flash_id_2'); // so later I can start the first flash object flashControl1.startAnimation(); // and stop animation on the second flash object flashControl2.stopAnimation();
一切正常。 我遇到的问题是,flash对象需要在内部执行一些操作才能通过JavaScript进行操作(它们需要加载一些东西等等)。
Flash对象需要通知引用它们的JSClass实例,它们已准备好被操作。 像这样的东西。
flashControl1.onFlashReady = function() { // do some stuff here when the flash is ready. }
如何从闪存中调用“flashControl1.onFlashReady()”? 请注意,flash不知道要定位的JSCLass实例。 如何从flash对象中定位特定的JSClass实例。
答案 0 :(得分:1)
我建议您通过flashvars将flash_id
传递给您的Flash电影,当完成Flash电影的初始化后,您可以使用ExternalInterface.call("someJsMethod", flashId);
通知您的javascript。在您的javascript方法someJsMethod(flashId)
中,您可以检查ID并将其映射到您的JSClass。