Flash-Object的详细解释

来源:互联网 发布:中国方言软件手机版 编辑:程序博客网 时间:2024/06/06 01:50

在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">
<param name="movie" value="mtv2_a.swf">
<param name="quality" value="high">
<embed src="mtv2_a.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="360" height="210">
</embed>
</object>

  我们可以看到,flash代码是由“<object>、</object>”一对标识符圈进的。注意的是其中的“<embed>”及“</embed>”是针对“网景NC”浏览器的!而“<object>”则是适合于IE主流浏览器。这就明白了为什么代码中有两处内容相同的设置项,从此也可知道当前浏览器是何等不兼容!
  第一、二行是检测访问者浏览器有无flash插件,如无,就从MM公司网站下载。第三项是作品尺寸;第四项就是你的作品文件,可以是绝对地址,也可用相对地址。第五项就是动画品质为“高”,一般只有老电脑如486的才应设为低。再下面就是针对NC浏览器的,前面已经说过。
  此外,如果你还设置了其它参数,如“透明flash”,那么代码将再会增加一些参数,就是“wmode="transparent"”。
  而那个“param name="movie"”是为动画定义一个ID,这在动画与网页间传递数据时必要的。
  从以上看,如果仅用在IE浏览器、用缺省参数、不考虑检测插件,那么最简单的flash代码应该是:
<object width="360" height="210">
<param name="movie" value="mtv2_a.swf">
</object>

  而我们很多朋友把自己辛苦做出的动画就以最原始的地址贴出,那么浏览器会无所适从,它会以整个屏幕能容纳的面积显示你的动画,这样可能使不该显示的内容也显示了,而且位图素材被放大了,十分难看。
  

Flash实战:从Js调用一个AS方法

<SCRIPT type=text/javascript><!--google_ad_client = "pub-2091829493268131";google_ad_width = 728;google_ad_height = 90;google_ad_format = "728x90_as";google_ad_type = "text";//2007-10-06: 页面google_ad_channel = "6163730386";google_color_border = "eeeeee";google_color_bg = "eeeeee";google_color_link = "215670";google_color_text = "000000";google_color_url = "008000";google_ui_features = "rc:6";//--></SCRIPT><SCRIPT src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type=text/javascript></SCRIPT><IFRAME name=google_ads_frame marginWidth=0 marginHeight=0 src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-2091829493268131&amp;dt=1217466223859&amp;lmt=1217466223&amp;prev_fmts=728x90_as&amp;prev_slotnames=5990938405&amp;format=728x90_as&amp;output=html&amp;correlator=1217466223703&amp;channel=6163730386&amp;url=http%3A%2F%2Fwww.missyuan.com%2Fthread-60532-1-64.html&amp;color_bg=eeeeee&amp;color_text=000000&amp;color_link=215670&amp;color_url=008000&amp;color_border=eeeeee&amp;ad_type=text&amp;ref=http%3A%2F%2Fwww.google.cn%2Fsearch%3Fcomplete%3D1%26hl%3Dzh-CN%26newwindow%3D1%26rlz%3D1T4XNLA_zh-CNCN282CN282%26q%3Djs%2B%253Cobject%253E%2B%25E6%25A0%2587%25E7%25AD%25BE%26meta%3D%26aq%3Df&amp;frm=0&amp;ui=rc%3A6&amp;cc=100&amp;ga_vid=2972140012663057400.1217466224&amp;ga_sid=1217466224&amp;ga_hid=287644088&amp;flash=9.0.124.0&amp;u_h=768&amp;u_w=1024&amp;u_ah=738&amp;u_aw=1024&amp;u_cd=32&amp;u_tz=480&amp;u_java=true" frameBorder=0 width=728 scrolling=no height=90 allowTransparency></IFRAME>

本文是个比较另类的Flash调用AS的方式,从Js调用一个AS方法。

    为了从js调用as的方法,你必须确认一下四个文件都包含在你的html文档中:
复制内容到剪贴板
代码:
<script type="text/javascript" src="/path/to/Exception.js"></script>  
<script type="text/javascript" src="/path/to/FlashTag.js"></script>  
<script type="text/javascript" src="/path/to/FlashSerializer.js"></script>  
<script type="text/javascript" src="/path/to/FlashProxy.js"></script>  
<script type="text/vbscript" src="/path/to/VBCallback.vbs"></script>  
用flashProxy.js (javascript类)来代理flash和js之间的方法调用。flashProxy和你想调用flash方法所在的flash必须共用一个唯一的id,这样flashProxy就知道页面上的哪个flash提供调用的方法了。创建唯一id的最简单方法是使用时间标签。在你的script中写到:

var uid = new Date().getTime();  

    现在我们来创建一个FlashProxy JavaScript class 实例,并将刚刚创建的唯一id传给flash。你的flash的ID或NAME(object标签中的ID的属性值和embed标签中的NAME的属性值),和JavaScriptFlashGateway.swf 文件的路径,像这样 :
复制内容到剪贴板
代码:
var flashProxy = new FlashProxy(uid, ’myFlashContent’, ’/path/to/JavaScriptFlashGateway.swf’);  
注:flash的ID或NAME为"myFlashContent"  。

    当你将flash嵌入你的html页面后,你得用flashvars来传递那个你传递给flashProxy构造器的唯一id(uid),同时,你还得给你的flash添加与传递给FlashProxy构造器的“myFlashContent”值相同ID或NAME(object标签中的ID的属性值和embed标签中的NAME的属性值)。文件中的FlashTag 类(FlashTag.js),使得这些变得很简单:
复制内容到剪贴板
代码:
<script type="text/javascript">  
    var tag = new FlashTag(’/path/to/flashContent.swf’, 300, 300, ’7,0,14,0’); //路径,宽度,高度,flashplayer版本号  
    tag.addFlashVars(’lcId=’ + uid);//传递的参数  
    tag.setId(’myFlashContent’);//设置<object id="myFlashContent">  
    tag.write(document);//写成html代码  
</script>
上面,我们写到 lcId=+ uid。那个唯一的id就是通过 lcId 这个flash变量传递到flash中的。  到现在我们已经做好了准备工作,可以通过flashProxy实例从js调用flash的方法了,如下:
复制内容到剪贴板
代码:
flashProxy.call(’myActionScriptFunction’, ’my string’, 123, true, new Date(), null);  
第一个参数是你想调用的flash方法名,其他的参数如同在flash中调用此函数一样,传递相同的参数。支持的数据类型包括objects, arrays, strings, dates, numbers, booleans, nulls, 和 undefined.  

    好了。确认我们的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> 标签。

可选的属性

属性描述DTD
align
  • left
  • right
  • top
  • bottom
定义围绕该对象的文本对齐方式。TF
archiveURL一个空格分隔的指向档案文件的 URL 列表。这些档案文件包含了与对象相关的资源。有关 archive 属性的详细信息STF
borderpixels定义对象周围的边框。TF
classidclass ID

定义嵌入 Windows Registry 中或某个 URL 中的类的 ID 值,此属性可用来指定浏览器中包含的对象的位置,通常是一个 Java 类。

有关 classid 属性的详细信息

STF
codebaseURL

定义在何处可找到对象所需的代码,提供一个基准 URL。

有关 codebase 属性的详细信息

STF
codetypeMIME type

通过 classid 属性所引用的代码的 MIME 类型。

有关 codetype 属性的详细信息

STF
dataURL

定义引用对象数据的 URL。如果有需要对象处理的数据文件,要用 data 属性来指定这些数据文件。

有关 data 属性的详细信息

STF
declaredeclare

可定义此对象仅可被声明,但不能被创建或例示,直到此对象得到应用为止。

有关 declare 属性的详细信息

STF
heightpixels定义对象的高度。STF
hspacepixels定义对象周围水平方向的空白。TF
nameunique_name为对象定义唯一的名称(以便在脚本中使用)。STF
standbytext定义当对象正在加载时所显示的文本。STF
typeMIME_type定义被规定在 data 属性中指定的文件中出现的数据的 MIME 类型。STF
usemapURL规定与对象一同使用的客户端图像映射的 URL。STF
vspacepixels定义对象的垂直方向的空白。TF
widthpixels定义对象的宽度。STF

标准属性

id, class, title, style, dir, lang, xml:lang

如需完整的描述,请访问标准属性

原创粉丝点击