![]() |
|
||||||||||
|
|||||
|
strange mood
|
Пойду от печки, т.е. от this.
This - это указатель на мувик, внутри которого исполняется код. Когда в коде идет работа со свойством или вызывается функция, то неявно подразумевается, что мы работаем с мувиком, внутри которого этот код написан, и поэтому this можно не писать. Т.е. мы можем написать и мувик встанет на соответствующую координату. А можем написать и эффект будет точно такой же. Но приколы начинаются в тот момент, когда мы решаем поработать с другим мувиком. Представим, что у нас есть мувик mcParent, внутри него лежит мувик mcChild, и мы пишем код в первом кадре mcParent. Нам нужно также сдвинуть mcChild на x=100. Пишем: Теперь немного усложним задачу: в mcParent лежат мувики mcFoo, mcBar, mcZod, mcKux и mcLol. Код вырастет до такого: Код, написанный копипастом, вызывает воспоминания о массивах и циклах: var mcs:Array = []; mcs.push(mcFoo); mcs.push(mcBar); mcs.push(mcZod); mcs.push(mcKux); mcs.push(mcLol); for(var i:int = 0; i < mcs.length; i++){ var mc:MovieClip = mcs[i]; mc.x = 100; }//for this.mcsToMove = []; function addMc(mc:MovieClip){ this.mcsToMove.push(mc); }//addMc function moveMcs(){ for(var i:int = 0; i < mcsToMove.length; i++){ var mc:MovieClip = mcsToMove[i]; mc.x = 100; }//for }//moveMcs Эта строчка отрабатывает во всех мувиках, которые нужно сдвинуть. Каждый такой мувик обращается к mcParent и передает ему ссылку на себя самого. И каждый раз mcParent получает ссылку на мувик и заносит ее в свой массив mcsToMove. В итоге в этом массиве будут содержаться ссылки на все мувики, которые нужно сдвинуть. Теперь по этому массиву можно пройтись циклом, собственно сдвигая мувики - это произойдет при вызове moveMcs(). Ну и в качестве финального штриха меняем понятие "сдвинуть на x=100" на "проверить на столкновение с героем", и получаем искомое.
__________________
тонкий тролль, осеянный благодатью |
![]() |
Часовой пояс GMT +4, время: 17:02. |
|
|
« Предыдущая тема | Следующая тема » |
|
|