【问题标题】:Targeting specific JavaScript object instance from flash从 Flash 定位特定的 JavaScript 对象实例
【发布时间】:2011-01-27 22:10:53
【问题描述】:

您好,第一次发帖。
假设我的页面上有一个 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'); // 所以稍后我可以启动第一个 flash 对象 flashControl1.startAnimation(); // 并在第二个 Flash 对象上停止动画 flashControl2.stopAnimation();

一切正常。 我遇到的问题是,flash 对象需要在内部做一些事情,然后才能通过 JavaScript 进行操作(它们需要加载一些东西等......)

Flash 对象需要通知引用它们的 JSClass 的实例,它们已准备好被操作。 像这样的。

flashControl1.onFlashReady = 函数() { // 当 flash 准备好时在这里做一些事情。 }

如何从 Flash 调用“flashControl1.onFlashReady()”? 请注意,flash 不知道要定位哪个 JSCLass 实例。 如何从 flash 对象中定位特定的 JSClass 实例。

【问题讨论】:

    标签: javascript actionscript-3


    【解决方案1】:

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

    【讨论】:

    • 不过,建议的解决方案将适用于这个特定问题。但是从 Flash 中引用 OOP JavaScript 仍然存在一个更普遍的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-18
    • 2017-06-09
    • 1970-01-01
    相关资源
    最近更新 更多