将相同的函数添加到Actionscript 3.0中的多个按钮

时间:2014-04-30 20:01:47

标签: actionscript-3 flash flash-cs6

我正在尝试将相同的按钮功能添加到Flash中的2个不同符号。一个是徽标,另一个是我转换为符号的文本,该符号将在结束场景中显示。

我不明白我做错了什么,但我对Actionscript&闪光灯。

我的代码如下所示:

import flash.events.MouseEvent;
import flash.display.MovieClip;
import flash.display.SimpleButton;
import flash.net.navigateToURL;
import flash.net.URLRequest;

myButton, txtButton.addEventListener(MouseEvent.CLICK, onClick, false, 0, true);
function onClick(e:MouseEvent):void{
    navigateToURL(new URLRequest("http://www.true.land"), "_blank"); 
}

但是我收到了这个错误:

  

尝试使用网址启动并连接到播放器   C:\ Users \ Angela \ Desktop \ ASU \ GIT 314 \赋值   7 \ AngelaRogers_Assignment7.swf [SWF] C:\ Users \ Angela \ Desktop \ ASU \ GIT   314 \ Assignment 7 \ AngelaRogers_Assignment7.swf - 之后的351066字节   解压缩TypeError:错误#1009:无法访问属性或   null对象引用的方法。在   按钮/帧1()[按钮::帧1:7]

2 个答案:

答案 0 :(得分:1)

你必须写两次 - 每个按钮一次,只从它的名字开始:child.addEventListener。没有快捷方式可以同时为两个对象添加相同的内容。

答案 1 :(得分:1)

您可以编写快捷功能来轻松完成此操作。 (正如其他人所指出的,你的逗号是造成错误的原因)。我相信这更像是你所追求的:(特别是如果你不断添加更多按钮)。

import flash.events.MouseEvent;
import flash.display.MovieClip;
import flash.display.SimpleButton;
import flash.net.navigateToURL;
import flash.net.URLRequest;

addClick(myButton, txtButton); //you can add as many items as you want as parameters

function addClick(...buttons):void {
    //the ...buttons parameter is known as the '...rest' parameter, and is an array of all the parameters passed to the function
    for each(var btn:Sprite in buttons){ //loop through all the items passed in and add the listener
        btn.addEventListener(MouseEvent.CLICK, onClick, false, 0, true);
    }
}

function onClick(e:MouseEvent):void{
    navigateToURL(new URLRequest("http://www.true.land"), "_blank"); 
}