在flash中导出网页文件时,flash将会你生成如下代码: <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="360" height="210"> 我们可以看到,flash代码是由“<object>、</object>”一对标识符圈进的。注意的是其中的“<embed>”及“</embed>”是针对“网景NC”浏览器的!而“<object>”则是适合于IE主流浏览器。这就明白了为什么代码中有两处内容相同的设置项,从此也可知道当前浏览器是何等不兼容! Flash实战:从Js调用一个AS方法<script type=text/javascript> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type=text/javascript></script>
本文是个比较另类的Flash调用AS的方式,从Js调用一个AS方法。
为了从js调用as的方法,你必须确认一下四个文件都包含在你的html文档中:
复制内容到剪贴板
用flashProxy.js (javascript类)来代理flash和js之间的方法调用。flashProxy和你想调用flash方法所在的flash必须共用一个唯一的id,这样flashProxy就知道页面上的哪个flash提供调用的方法了。创建唯一id的最简单方法是使用时间标签。在你的script中写到:
代码:<script type="text/javascript" src="/path/to/Exception.js"></script>
var uid = new Date().getTime(); 现在我们来创建一个FlashProxy JavaScript class 实例,并将刚刚创建的唯一id传给flash。你的flash的ID或NAME(object标签中的ID的属性值和embed标签中的NAME的属性值),和JavaScriptFlashGateway.swf 文件的路径,像这样 :
复制内容到剪贴板
注:flash的ID或NAME为"myFlashContent" 。
代码:var flashProxy = new FlashProxy(uid, ’myFlashContent’, ’/path/to/JavaScriptFlashGateway.swf’);
当你将flash嵌入你的html页面后,你得用flashvars来传递那个你传递给flashProxy构造器的唯一id(uid),同时,你还得给你的flash添加与传递给FlashProxy构造器的“myFlashContent”值相同ID或NAME(object标签中的ID的属性值和embed标签中的NAME的属性值)。文件中的FlashTag 类(FlashTag.js),使得这些变得很简单:
复制内容到剪贴板
上面,我们写到 lcId=+ uid。那个唯一的id就是通过 lcId 这个flash变量传递到flash中的。 到现在我们已经做好了准备工作,可以通过flashProxy实例从js调用flash的方法了,如下:
代码:<script type="text/javascript">
复制内容到剪贴板
第一个参数是你想调用的flash方法名,其他的参数如同在flash中调用此函数一样,传递相同的参数。支持的数据类型包括objects, arrays, strings, dates, numbers, booleans, nulls, 和 undefined.
代码:flashProxy.call(’myActionScriptFunction’, ’my string’, 123, true, new Date(), null);
好了。确认我们的myFlashContent.swf已经引用并初始化了一个 JavaScriptProxy 对象来接受这些函数调用命令(参考“在flash中接收一个js方法的调用”一文)。 关于更高级的使用例子,FlashProxy object 提供一个附加的可选参数,叫做“callbackScope”(暂译:返回范围)。如果你想让flash在一个更大的范围中调用方法而不是局限于当前文档中,那么传递一个参数到想到达的区域。举个例子,比如我有一个js object叫做“callback”,我可以这样子来实例化FlashProxy 来让flash中供调用的方法依附于“callback”的实例上:
复制内容到剪贴板
代码:var flashProxy = new FlashProxy(uid, ’myFlashContent’, ’/path/to/JavaScriptFlashGateway.swf’, callback);
======================================================== HTML <object> 标签定义和用法定义一个嵌入的对象。请使用此元素向您的 XHTML 页面添加多媒体。此元素运行您规定插入 HTML 文档中的对象的数据和参数,以及可用来显示和操作数据的代码。 HTML 与 XHTML 之间的差异NONE 提示和注释:注释:object 元素可位于在 head 元素或 body 元素内部。<object> 与 </object> 之间的文本是替换文本,针对不支持此标签的浏览器。<param> 标签可定义用于对象的 run-time 设置。 注释:至于图像,请使用 <img> 标签代替 <object> 标签。 可选的属性
|
Flash-Object的详细解释
最新推荐文章于 2020-12-19 00:31:12 发布