在Flash中,是否可以在包含Flash对象本身的页面中启动JavaScript函数(使用AJAX)?
我们的目标是:在一个网站上,用Flash显示一个漂亮的菜单“a la”iPhone,当我们点击菜单时,在Flash菜单下显示网站的一部分 两种选择:在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。假肢
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