Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Перемещение мувиклипа (http://www.flasher.ru/forum/showthread.php?t=138432)

mooncar 07.04.2010 21:55

Цитата:

Сообщение от MkTwo (Сообщение 898775)
почему-то выдаёт ошибку при экспорте...syntax error в первой строке, причём только в моём файле, при экспорте исходника всё норм... можно как-то обойтись без экспорта mx.transitions.Tween?

Нет, пример основан на классе Tween и прочем. AS2 only, в общем.
Ставьте при публикации AS2.
AS1 уже очень сильно устарел.

MkTwo 07.04.2010 22:13

Вот сделал, но прицел застревает в верхнем углу)
Код AS1/AS2:

var incX = 1;
var incY = -2;
 
var w = 16;
var h = 16;
 
mc.onEnterFrame=function() {
 
        mc._x += incX;
        mc._y += incY;
 
        if (mc._x > 240-w) {// Столкновение с правой границей
                mc._x = 240-w;
                incX = -incX;// Меняем направление
        }
        if (mc._x < w) {// Столкновение с левой границей
                mc._x = w;
                incX = -incX;// Меняем направление
        }
        if (mc._y < h) {// Столкновение с верхней границей
                mc._y = h;
                incY = -incY;// Меняем направление
        }
        if (mc._y > 350-h) { // Столкновение с нижней границей
                mc._y = 350-h;
                incY = -incY;// Меняем направление
        }
}

Так как у меня клип состоит не из одного кадра, то он каждый раз при проходе через первый кадр сбрасывает величину приращения на исходные :( Как можно избежать этого?

Добавлено через 1 минуту
Цитата:

Сообщение от mooncar (Сообщение 898781)
Ставьте при публикации AS2.
AS1 уже очень сильно устарел.

девайс на который флешка пишется не поддерживает AS2, тока AS1

mooncar 07.04.2010 22:22

Цитата:

Сообщение от MkTwo (Сообщение 898785)
Так как у меня клип состоит не из одного кадра, то он каждый раз при проходе через первый кадр сбрасывает величину приращения на исходные :( Как можно избежать этого?

Делайте все в одном кадре.
Или введите для этого флаговую переменную для проверки, нужно или нет выполнять эти действия, т.е. ограничение выполнения кода один раз.
Типа:
Код AS1/AS2:

if (!wasStarted) {
 
        var incX = 1;
        var incY = -2;
 
        var w = 16;
        var h = 16;
 
        mc.onEnterFrame=function() {
 
                mc._x += incX;
                mc._y += incY;
 
                if (mc._x > 240-w) {// Столкновение с правой границей
                        mc._x = 240-w;
                        incX = -incX;// Меняем направление
                }
                if (mc._x < w) {// Столкновение с левой границей
                        mc._x = w;
                        incX = -incX;// Меняем направление
                }
                if (mc._y < h) {// Столкновение с верхней границей
                        mc._y = h;
                        incY = -incY;// Меняем направление
                }
                if (mc._y > 350-h) { // Столкновение с нижней границей
                        mc._y = 350-h;
                        incY = -incY;// Меняем направление
                }
        }
 
        var wasStarted = true ;
 
}


MkTwo 08.04.2010 09:29

mooncar, спасибо Вам большое) всё работает)


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

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