2014-10-03 1 views
0

Я хочу создать цикл на некоторых объектах Sprite. Эти объекты не в массиве, но я назвал их так: fixPT1, fixPT2 ... Я попробовал это, но это не будет работатьacstionscript 3 Имя объекта Loop Имя объекта Iterate

function stopAll(e:MouseEvent):void { 
    var num:Number = 1; 
    if (dragPT1.x == destPt1.x && dragPT1.y == destPt1.y) { 
     stage.removeEventListener(MouseEvent.MOUSE_MOVE, pointMove); 
    } else { 
     dragPT1.x = fixPt1.x; 
     dragPT1.y = fixPt1.y; 
    } 
} 
+3

Если .name свойство установлено года должны быть в состоянии использовать запись доступа к массиву: 'this [" fixPt "+ num]' или использовать [getChildByName()] (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObjectContainer.html #getChildByName()) –

ответ

0
totalNumberOfSpriteObjects = 3; // or however many there are 
for(var i:int = 0; i < totalNumberOfSpriteObjects; i++) 
{ 
    var fixPoint = this[ 'fixPt' + (i+1) ]; 
    var dragPoint = this[ 'dragPT' + (i+1) ]; 
    var destPoint = this[ 'destPt' + (i+1) ]; 

    if (dragPoint.x == destPt.x && dragPoint.y == destPt.y) 
    { 
     stage.removeEventListener(MouseEvent.MOUSE_MOVE, pointMove); 
    } 
    else 
    { 
     dragPoint.x = fixPoint.x; 
     dragPoint.y = fixPoint.y; 
    } 
} 
Смежные вопросы