你好,我已经好几年没用过 flash 了,需要在我的新 AS3 横幅中使用一些旧的跟踪代码。我注意到在 3.0 中,您不能将动作脚本放在对象本身上,而只能放在时间轴上。
我需要转换这个 As2 脚本,我通常会在标有“my_button”的按钮上
on (release) {
getURL (_level0.clickTag, "_blank");
}
在时间轴上为标记为“my_button”的按钮使用的等效代码片段是什么?
你好,我已经好几年没用过 flash 了,需要在我的新 AS3 横幅中使用一些旧的跟踪代码。我注意到在 3.0 中,您不能将动作脚本放在对象本身上,而只能放在时间轴上。
我需要转换这个 As2 脚本,我通常会在标有“my_button”的按钮上
on (release) {
getURL (_level0.clickTag, "_blank");
}
在时间轴上为标记为“my_button”的按钮使用的等效代码片段是什么?
这是 Google 的 clickTag 建议:
import flash.events.MouseEvent;
import flash.net.URLRequest;
// ......
someButton_or_displayObject_to_receive_mouseClick.addEventListener(MouseEvent.CLICK,
function(event: MouseEvent) : void {
flash.net.navigateToURL(new URLRequest(root.loaderInfo.parameters.clickTAG), "_blank");
}
);
我看到了一些不同的例子,但没有一个与我使用的方法相同;
这是完整版,只需复制粘贴并添加到您的 URL AS3
import flash.events.MouseEvent;
import flash.net.URLRequest;
// add event listener to listen for "btnOpen" click
btnOpen.addEventListener(MouseEvent.CLICK,openFuction);
// add our openFuction
function openFuction(e:MouseEvent){
var openPage:URLRequest=new URLRequest("https://mysite.co.uk")
navigateToURL(openPage,"_blank");
}
还有另一种方法,它不一定依赖于 ExternalInterface 类的使用。您也可以尝试这样的事情(假设您在舞台上的对象的实例名称为“mybtn_mc”:
mybtn_mc.addEventListener(MouseEvent.CLICK, openWebpage);
//
function openWebpage(e:MouseEvent):void {
var my_url:URLRequest = new URLRequest("http://stackoverflow.com/questions/15580069/geturl-in-as3-how-to/15639569");
flash.net.navigateToURL(my_url, "_self");
}
// if you want the object to act like buttons do in AS2
// with the handcursor effect when you mouse over them,
// you would include the following lines:
mybtn_mc.buttonMode = true;
mybtn_mc.useHandCursor = true;
这是用时间线风格写的,我不赞成。但我感觉您甚至还没有准备好获得有关课程及其工作方式的信息。
myButton.addEventListener(MouseEvent.CLICK, openWebpage); 功能打开网页(e:鼠标事件):无效{ 如果(外部接口。可用){ var callReturn:String = ExternalInterface.call('function(){window.open("http://www.yourURL.com", "_blank", "top=0,left=0,width=800,height=600 ");}'); } }
请注意,您不应该试图超出当前 MC 的范围,但是如何做其他事情超出了这个答案的范围。如果有兴趣,请搜索依赖注入。