2011-10-21 17 views
2

の要素内の要素の上にループ私は、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); 
     } 

を私はしかし、このコードの外観を好きではなかったです。次のように4枚の画像を自分のアプリケーション内で宣言されています

<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内の各画像をループする方法ではありませんとのEventHandlerを追加しますか?このような

何か:

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

}

先生はこれが不可能であるが、10+画像の場合には、私は別に、すべての画像のためにそれをやって想像できない私に言いました。これを行うにはより良い方法が必要ですか?

ありがとうございます!

+1

ようだ:D は簡単な証明はまた、あなたの先生は許されるべきではないRIAStars'ポスト –

+1

で見つけることができますFlexを教えるために、これは本当に基本的なものです....私は心配しているでしょう – JTtheGeek

+0

IMO、それは両方の挑戦的なプロジェクト_and_教師の両方のアクティブな開発者であることはほとんどの人にとって不可能です。したがって、デフォルトでは、ほとんどの教師は実際の開発作業を行っていない人です。 –

答えて

6

あなたの先生は間違っています!

HGroupにid(例:imageGroup)を指定します。

は、この操作を行います。

以来...あなたの先生はあなたにcrappiest答えを与えたよう
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); 
}