![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jan 2007
Сообщений: 368
|
Подскажите как лучше организовать движение большого кол-ва объектов?
Есть 2 варианта: 1. Каждому объекту назначить обработчик ENTER_FRAME и двигать 2. Сделать глобальный обработчик ENTER_FRAME , а каждому объекту задавать вектор движения и двигать все объекты из единого обработчика. Как будет быстрее и правильнее? |
|
|||||
|
Модрон-ветеринар
|
Вариант 2.
Если можно сделать один обработчик, зачем создавать много? Если характер движения имеет закономерность в зависимости от номера объекта, в этой функции вычисляйте координаты движения циклом по объектам. Если нет, создайте массив координат, тоже все циклом и используйте массив для вычислений.
__________________
Идите первым! Последний раз редактировалось mooncar; 30.08.2010 в 11:18. |
|
|||||
|
Регистрация: Jan 2007
Сообщений: 368
|
ага спасибо так и думал
|
|
|||||
|
Цитата:
Заранее благодарю.
__________________
Помогайте новичкам, вы сами ими когда-то были!!! |
|
|||||
|
Модрон-ветеринар
|
Допустим, на сцене 10 мувиков - mc1, mc2...mc10.
Тогда: this.onEnterFrame = function() { for (i = 1; i <= 10; i++) { var mc:MovieClip = this['mc' + i]; mc._x += 5; mc._y += 2; } } this.onEnterFrame = function() { for (i = 1; i <= 50; i++) { var mc:MovieClip = this['mc' + i]; mc._x += 5 * (i / 2) ; mc._y += 2; } } var c:Number = 0; this.onEnterFrame = function() { if (c <= 30) { for (i = 1; i <= 50; i++) { var mc:MovieClip = cont_mc['mc' + i]; mc._x += 5 * (i / 2) ; mc._y += 2; } c++; } } this.onEnterFrame = function() { for (i in cont_mc) { var mc:MovieClip = cont_mc[i]; mc._x += 5; mc._y += 2; } } С массивом примера не привожу, забивать координатами сил нету. ![]() Скажу только, что массив нужен многомерный. PS. Тему бы в AS2, автор топика сразу об EnterFrame заговорил...
__________________
Идите первым! Последний раз редактировалось mooncar; 16.11.2010 в 13:47. |
|
|||||
|
Благодарю, оч. хорошие примеры, но все-таки хотелось бы с массивом, могу даже подкинуть, к примеру:
var tr:Array = [[240,500],[240,490],[240,480],[240,470],[240,460],[240,450],[240,440],[240,430],[240,420],[240,410],[240,400],[240,390],[240,380],[240,370],[240,360],[240,350],[240,340],[240,330],[240,320],[240,310],[240,300],[240,290],[240,280],[240,270],[240,260],[240,250],[240,240],[240,230],[240,220],[240,210],[240,200],[240,190],[240,180],[240,170],[240,160],[240,150],[240,140],[240,130],[240,120],[240,110],[240,100],[240,90],[240,80],[240,70],[250,70],[260,70],[270,70],[280,70],[290,70],[300,70],[310,70],[320,70],[330,70],[340,70],[350,70],[360,70],[365,75],[365,85],[365,95],[365,105],[365,115],[365,125],[365,135],[365,145],[365,155],[365,165],[365,175],[365,185],[365,195],[365,205]];
__________________
Помогайте новичкам, вы сами ими когда-то были!!! |
|
|||||
|
Цитата:
|
|
|||||
|
Это массив координат парами [_x,_y], они (пары) представляют собой траекторию движения объектов.
Отвечая на вопрос "??? А что должно получится из этого?", скажу объекты должны начать двигаться по этой траектории. Не забывайте читать не только последний пост, но и предыдущие, тогда картина становится немного яснее.
__________________
Помогайте новичкам, вы сами ими когда-то были!!! |
|
|||||
|
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Я в таком случае обычно создаю отдельный класс в котором добавляю ENTER_FRAME слушатель, а он уже в свою очередь запускает цикл в массиве (находящемся в каком либо другом классе или в этом же) с объектами которые нужно перемещать.
И лучше всего всегда ставить значение переменной weakReference такого слушателя на true. В таком случае можно избежать утечек памяти, которые часто вызывает ENTER_FRAME при неправильном использовании |
|
|||||
|
Я читал всю тему, честное слово, а в ней вы только спрашивали как правильно обрабатывать массивы объектов...
|
![]() |
![]() |
Часовой пояс GMT +4, время: 19:25. |
|
|
« Предыдущая тема | Следующая тема » |
|
|