gpt4 book ai didi

apache-flex - 在 Flex 中循环元素内的元素

转载 作者:行者123 更新时间:2023-12-02 21:50:53 26 4
gpt4 key购买 nike

我在 Flex 4 中有以下功能:

protected function initEventHandlers():void
{
imageContainer.addEventListener(DragEvent.DRAG_ENTER, acceptDrag);
imageContainer.addEventListener(DragEvent.DRAG_DROP, handleDrop);

img_1.addEventListener(MouseEvent.MOUSE_DOWN, handleDrag);
img_2.addEventListener(MouseEvent.MOUSE_DOWN, handleDrag);
img_3.addEventListener(MouseEvent.MOUSE_DOWN, handleDrag);
img_4.addEventListener(MouseEvent.MOUSE_DOWN, handleDrag);
}

不过我不喜欢这段代码的外观。这四个图像在我的应用程序中声明如下:

<s:HGroup y="10" width="650" horizontalAlign="center" horizontalCenter="6">
<s:Image width="80" height="80" source="images/1.jpg" id="img_1" />
<s:Image width="80" height="80" source="images/2.jpg" id="img_2" />
<s:Image width="80" height="80" source="images/3.jpeg" id="img_3" />
<s:Image width="80" height="80" source="images/4.jpg" id="img_4" />
</s:HGroup>

有没有办法循环 hgroup 中的每个图像并添加事件处理程序?

类似这样的事情:

for(image in hgroup) { 
image.addEventlistener(MouseEvent.MOUSE_DOWN, handleDrag);

}

 我的老师告诉我这是不可能的,但如果有 10 张以上图像,我无法想象单独对每个图像执行此操作。必须有更好的方法来做到这一点,不是吗?

提前致谢!

最佳答案

你的老师错了!

为 HGroup 指定一个 ID(例如 imageGroup)。

然后这样做:

var numElements:int = imageGroup.numElements;
for (var i:int = 0; i<numElements; i++) {
var image:Image= imageGroup.getElementAt(i) as Image;
if (image) image.addEventlistener(MouseEvent.MOUSE_DOWN, handleDrag);
}

关于apache-flex - 在 Flex 中循环元素内的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7851875/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com