将图像阵列图像转换为按钮AS3

时间:2013-08-13 09:18:14

标签: actionscript-3 flash-cs5 imagebutton

我正在创建一个带搜索功能的应用。我通过从数组中加载符合搜索条件的图像来显示图像。所有图像都从库中加载。我希望能够点击图像,就好像它是一个按钮。一旦我点击我想转到第3帧并更改一个变量整数来说明点击了哪个图像,这样我就可以在第3帧中显示有关该照片的信息。我可以使用事件监听器说明吗

imagesArray[i].addEventListener(MouseEvent.CLICK, imageClick);
function imageClick(event:MouseEvent):void
{
    gotoAndStop(3);
    current = i;
}

或类似的, 感谢

2 个答案:

答案 0 :(得分:0)

是的,但不会那么容易。首先,位图不处理事件,因此您无法将侦听器直接分配给Bitmap对象。接下来,在这样的结构中没有“i”可用,你必须自己确定“我”。为此,您解析event.target属性,该属性是已单击的对象。将每个Bitmap对象包装到一个单独的Sprite对象中,为这些sprite分配侦听器,然后解析event.target以从中获取相关的对象引用,通过{{1获取索引调用,并将其分配给全局indexOf()变量。

current

答案 1 :(得分:0)

我不太确定将“current”设置为“i”会起作用,因为该函数不会与for循环同时运行。

我假设你因为你正在使用[i]你在for循环中添加了事件监听器?

你能做的是:

for (var i:int = 0; i < (howeverManyTimesToRun); i++)
{
    imagesArray[i].addEventListener(MouseEvent.CLICK, imageClick);
    imagesArray[i].myIndex = i;
}

然后在你的函数中(在for循环之外)

function imageClick (e:MouseEvent) {
    gotoAndStop(3);
    current = e.currentTarget.myIndex;
}

同样在你的for循环中你可能想要添加

imagesArray[i].buttonMode = true;

当鼠标移到图像上时,将鼠标光标更改为手。