【发布时间】:2011-10-21 15:42:06
【问题描述】:
我在 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 多张图片,我无法想象单独为每张图片都这样做。必须有更好的方法来做到这一点,不是吗?
提前致谢!
【问题讨论】:
-
似乎你的老师给了你最糟糕的答案,因为......有史以来:D 简单的证明可以在 RIAStars 的帖子中找到
-
此外,你的老师不应该被允许教 Flex,这真的是基本的东西......我会担心
-
IMO,大多数人不可能同时成为具有挑战性项目的积极开发人员和教学。因此,默认情况下,大多数教师都是不从事实际开发工作的人。
标签: apache-flex actionscript mxml flexbuilder flex4.5