2013-03-13 2 views
2

Я имею дело с этой проблемой. У меня есть 24 мувиклипа (называемые mc1, mc2, .., mc24), и они помещаются на сцену в виде сетки (6x4). Мне нужна функция, которая переключает позиции этих мувиклипов (что-то вроде тасования, но с известным положением других мувиклипов). Например, mc1.x и mc1.y будут равны mc4.x и mc4.y и т. Д. Большое спасибо за ваше время и идеи!Переключение положения мувиклипа друг с другом [AS3]

ответ

0

ли вы имеете в виду что-то вроде этого:

function swap(mcA:MovieClip, mcB:MovieClip):void 
{ 
    var tempPosition:Point = new Point(mcA.x, mcA.y); 
    mcA.x = mcB.x; 
    mcA.y = mcB.y; 

    mcB.x = tempPosition.x; 
    mcB.y = tempPosition.y; 
} 
swap(mc1, mc4); 

Это будет поменять позиции mc1 и mc4.

var totalItems:int = 24; // total number of items 
for(var i:int = 0; i < int(totalItems/2); i++) 
{ 
    var randomItem:String = "mc"+(int(Math.random() * (int(totalItems/2)-1)) + (int(totalItems/2)+1)); 
    swap(this["mc"+(i+1)], this[randomItem]); 
} 

Это будет проходить в первой половине пунктов и поменять их случайный предмет из 2-й половины пунктов.

+0

Да, но мне нужно поменять местами более чем на 2 мувиклипа, в лучшем случае из всех 24, что-то вроде игры pexeso - цель в том, что когда я запускаю приложение, мувиклипы не могут находиться на одном и том же месте каждый раз, они должны swap позиции каждый раз – tomiteko

+0

Хорошо, я обновил код, чтобы показать вам, как вы можете перетасовать всю доску. В принципе, он заменяет каждый элемент из первой половины доски случайным элементом со второй половины платы. Другим способом сделать это было бы поместить все ваши MovieClips в 'Array', перетасовать его с помощью' array.sort (function (a: Object, b: Object): int {return Math.random()>. 5? -1: 1}) 'и THEN присвоить им значения' x' и 'y' упорядоченным образом. – Marcela

+0

Большое вам спасибо, я попробую, как только смогу, и дам вам знать, как это работает для меня – tomiteko

1

Использовать своп XOR. В основном это происходит следующим образом:

mc1.x ^= mc4.x; 
mc4.x ^= mc1.x; 
mc1.x ^= mc4.x; 

mc1.y ^= mc4.y; 
mc4.y ^= mc1.y; 
mc1.y ^= mc4.y; 

Затем перейдите оттуда.

Смежные вопросы