您的位置:首页 > 其它

关于Actionscript 3中给Flash传参数方法(一)

2009-02-26 15:23 232 查看

关于Actionscript 3中给Flash传参数方法(一)

今天在测试一个为Audi做Flash AD的时候,发现Audi提供的clicktag是Actionscript 2的代码,在Actionscript 3中是不被支持的,所以有去翻了Adobe Docs了。

在2.0中的clicktag代码如下:

On(Release) = {
getURL(_root.clicktag, "_blank");
}


在3.0中是不支持_root的,并且事件函数也不是这样写的。自己做了个测试swf,简单代码如下:

//
// test.as
//
// Written by Leezhm, 26th February, 2009
// Contact : Leezhm@126.com
// Last Modified by Leezhm on 26th Feb, 2009
//
package
{
import flash.display.Sprite;
import flash.display.SimpleButton;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.net.URLRequest;
import flash.net.navigateToURL;

public class test extends Sprite
{
public function test():void
{
this.addEventListener(Event.ENTER_FRAME, OnEnterFrame);
this.btnLink.addEventListener(MouseEvent.CLICK, OnBtnClick);
}

private function OnEnterFrame(evt:Event):void
{
if("" != root.loaderInfo.parameters.clicktag)
{
this.txt.text = root.loaderInfo.parameters.clicktag;
}
}

private function OnBtnClick(evt:MouseEvent):void
{
var _request:URLRequest = new URLRequest(root.loaderInfo.parameters.clicktag);
navigateToURL(_request, "_blank");
}
}
}


很明显,_root.clicktag在Actionscript 3中是用root.loaderInfo.parameters.clicktag来代替,关于loaderInfo.parameters可以参考flash.display.loaderInfo类的parameters属性。而且也用flash.net包中的顶级函数navigateToURL代替了getURL,但是要传入一个URLRequest的参数。注意:由于flash player安全性的问题这样弹出的窗口可能被阻止。具体可见Adobe Docs的如下截图:



最后传上测试效果截图(在公司的主站上测试,由于安全性问题,对图片中显示的URL和公司Logo进行了处理)



我们在swf后输入了?clicktag=http://www.google.com。其中?是给flash传参数的标识符,一定不能丢。clicktag是参数名,后面google的网站就是传进去的参数。点击下面红色的button会链接到google的主站。



好了,其实在网页中传递参数的方法很多,大家可以自己去百度,也可以看看google的clicktag。

BTW:给大家一个clicktag的测试网站,俺Manager发给我的,很好,可以先测试。

http://www.bannerflow.com/clicktest/



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: