我正在创建一个带搜索功能的应用。我通过从数组中加载符合搜索条件的图像来显示图像。所有图像都从库中加载。我希望能够点击图像,就好像它是一个按钮。一旦我点击我想转到第3帧并更改一个变量整数来说明点击了哪个图像,这样我就可以在第3帧中显示有关该照片的信息。我可以使用事件监听器说明吗
imagesArray[i].addEventListener(MouseEvent.CLICK, imageClick);
function imageClick(event:MouseEvent):void
{
gotoAndStop(3);
current = i;
}
或类似的, 感谢
答案 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;
当鼠标移到图像上时,将鼠标光标更改为手。