Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   как заставить двигаться объекты? (http://www.flasher.ru/forum/showthread.php?t=135618)

nbvehfuanet 27.01.2010 18:36

как заставить двигаться объекты?
 
помогите пожалуйста....как заставить двигаться сразу несколько объектов,которые беруться из библиотеки?

leofit 27.01.2010 18:56

Каждому изменить значение x, или y

nbvehfuanet 27.01.2010 19:12

Цитата:

Сообщение от leofit (Сообщение 882421)
Каждому изменить значение x, или y

а можно дать пример,ато я делаю так
Код AS3:

for (var i:int=1;i<onlin_kol;i++){
var newClip:MovieClip=new gop();
newClip.name = "clip"+String(i);
if (newClip.x==pl_x[i])newClip.x=pl_x[i];
if (newClip.x>pl_x[i]) newClip.x+=6 * Math.cos(9);
if (newClip.x<pl_x[i]) newClip.x-=6 * Math.cos(9);
this.addChild(newClip);
}

ет пример с координатами по Х ,но он не пашет ....не двигает объект...он все объекты останавливает в координате последнего мувика

VVall 27.01.2010 19:23

Так происходит, потому что экран не обновляется в процессе выполнения цикла. Обновлять координаты объектов надо во время обновления экрана, по событию ENTER_FRAME.

nbvehfuanet 27.01.2010 19:26

Цитата:

Сообщение от VVall (Сообщение 882431)
Так происходит, потому что экран не обновляется в процессе выполнения цикла. Обновлять координаты объектов надо во время обновления экрана, по событию ENTER_FRAME.

а вы не могли бы помочь мне с этим?
если конечно вас ето не затруднит,а если уж не сможете....то спасибо за ваш совет:)
"Яндекс мне в руки"

VVall 27.01.2010 19:38

Код сейчас писать и проверять лень. В двух словах, вам нужно создать (new и addChild) все ваши клипы однократно в момент инициализации. Дальше нужно подписаться на событие addEventListener(Event.ENTER_FRAME,обработчик); и менять координаты объектов в обработчике (без цикла).

dmitriev 27.01.2010 20:27

Код AS3:

var gops:Array = []; // Создаём пустой массив для наших клипов
addEventListener(Event.ENTER_FRAME, enterFrameListener); // Добавляем слушатель ENTER_FRAME
for (var i:int=1;i<onlin_kol;i++) {
        var newClip:MovieClip = new gop();
        newClip.name = "clip"+String(i);
 
        this.addChild(newClip);
        gops.push(newClip); // Засовываем новый клип в массив
}
 
function enterFrameListener(e:Event):void {
        var i:int = 0;
        for each(var item:MovieClip in gops) { // Обходим весь массив с нашими клипами
 
        // А дальше уже условия их движения
                if (item.x == pl_x[i])
                        item.x = pl_x[i];
                else if (item.x > pl_x[i])
                        item.x += 6 * Math.cos(9);
                else if (newClip.x < pl_x[i])
                        item.x -= 6 * Math.cos(9);
 
                i++;
        }
}

Классы называйте с прописных и оформляйте код красивее, будет понятнее.

yorlin 28.01.2010 12:52

Это один из множества вариантов.
Можно использовать: http://code.google.com/p/tweener/
Видео тутор: http://gotoandlearn.com/play?id=45

MidnightOne 28.01.2010 20:43

Ещё вопрос:
Можно-ли, или как можно заставить объект двигаться (в заданную точку) с использованием изов (Ease), как при анимации?

mayakwd 28.01.2010 21:52

Цитата:

Сообщение от MidnightOne (Сообщение 882633)
Ещё вопрос:
Можно-ли, или как можно заставить объект двигаться (в заданную точку) с использованием изов (Ease), как при анимации?

Читайте сообщение vorlin'a


Часовой пояс GMT +4, время: 01:02.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.