У меня есть следующая функция в 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 изображений я не могу себе представить, чтобы это делалось для каждого изображения отдельно. Должен быть лучший способ сделать это, не так ли?
Заранее спасибо!