从Flash中定位特定的JavaScript对象实例

时间:2011-01-27 22:10:53

标签: javascript actionscript-3

问候,第一次海报。
假设我的页面上有一个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实例。

1 个答案:

答案 0 :(得分:1)

我建议您通过flashvars将flash_id传递给您的Flash电影,当完成Flash电影的初始化后,您可以使用ExternalInterface.call("someJsMethod", flashId);通知您的javascript。在您的javascript方法someJsMethod(flashId)中,您可以检查ID并将其映射到您的JSClass。