在Flash中,是否可以在包含Flash对象本身的页面中启动JavaScript函数(使用AJAX)?

在Flash中,是否可以在包含Flash对象本身的页面中启动JavaScript函数(使用AJAX)?,javascript,ajax,flash,Javascript,Ajax,Flash,我们的目标是:在一个网站上,用Flash显示一个漂亮的菜单“a la”iPhone,当我们点击菜单时,在Flash菜单下显示网站的一部分 两种选择: 使用 具有iFrame和 使用Flash打开该菜单中的菜单 iFrame 创建一个带有div的页面 在其底部,使用Flash启动一个 JavaScript(如果你有更好的想法,请告诉我!)函数,通过AJAX下载所需菜单 我的第一个目标是只拥有一个页面。理想情况下,它将嵌入Flash对象并启动JavaScript函数 附言:我讨厌iFrames。假肢

我们的目标是:在一个网站上,用Flash显示一个漂亮的菜单“a la”iPhone,当我们点击菜单时,在Flash菜单下显示网站的一部分

两种选择:

  • 使用 具有iFrame和 使用Flash打开该菜单中的菜单 iFrame
  • 创建一个带有div的页面 在其底部,使用Flash启动一个 JavaScript(如果你有更好的想法,请告诉我!)函数,通过AJAX下载所需菜单
  • 我的第一个目标是只拥有一个页面。理想情况下,它将嵌入Flash对象并启动JavaScript函数

    附言:我讨厌iFrames。假肢对我来说是邪恶的

    别犹豫,把我的问题改成地道的英语

    谢谢


    Olivier

    是的,这很有可能在Flash文档中使用。这一联系解释了整个过程


    一个更大的问题是,听起来你在用Flash复制iPhone动画,我想(除非你在做“翻转”动画),它可以很容易地用普通的JavaScript动画复制,可能是用一个类似于库的动画,或者帮助规范化浏览器的差异。您甚至可以在Safari 4中制作3D动画。

    一种有时仍然有用的老方法是
    getURL
    方法。这里有一个很好的差异记录:。一般来说,
    ExternalInterface
    是首选,但有时您希望使用未定义的函数与页面交互

    用法:

    getURL("javascript:myFunction(arguments);");
    

    正如Doug所说,您可以使用JS库重新创建iPhone动画。如果这是一个问题,那么您的菜单可以为搜索引擎导航,这将带来额外的好处。

    Doug建议的替代方案是旧的“fscommand()”函数。在Flash代码中,您将“fscommand('name'、'value');”替换为您希望发送到web页面的任何信息的名称和值

    在web页面上,您需要有一个JavaScript函数来侦听Flash对象的“FSCommand”事件,如下所示(即示例,请参阅其他浏览器的文档):

    function OnFSCommand(name, value)
    {
      // whatever you need to do with name & value
    }
    
    var swf = document.getElementById(name-of-my-Flash-object);
    swf.attachEvent("FSCommand", OnFSCommand); // IE-only - see docs for other browsers