Форум 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=105360)

CROL 13.12.2007 20:13

последовательность действий
 
как с помощью програмной анимации задать последовательность действи? если с помощью if то скажите что не правильно:
Код:

       
mc._x = 0
mc._y = 0
this.onEnterFrame = function() {
if (mc._x<par1 || mc._x>par1) {
mc._x = mc._x+(par1-mc._x)*0.211;
}
par1 = 0;
if (par1 = 0) {
_xscale+=1;
_yscale+=1;
}
}

то есть мувик должен сначала идти по оси Х, остановиться, а потом становиться больше по осям Х и У

Fernando Costa 13.12.2007 20:24

Код:

mc._x = 0
mc._y = 0
var  par = 0;

mc.onEnterFrame = function() {
    par++
    if (par<=20) this._x+=5
    if (par > 20) {
      this._xscale+=1;
      this._yscale+=1;
    }
}

:victory:

koIIImarik 13.12.2007 20:34

Вот урок по программной анимации:
http://www.flashist.ru/2007/11/05/pr...olko%e2%80%a6/
Чтобы отследить окончание одного движения и задать, соответственно, в этот момент другое нужно использовать событие onMotionFinished, речь идёт о классе Tween, если не понятно пройдите по ссылке, или воспользуйтесь поиском на форуме тут.
Код:

import mx.transitions.Tween;
import mx.transitions.easing.*;
//
obj_mc.varTween = new Tween(obj_mc, "_x", false, 100, 200, 1, true);
obj_mc.varTween.onMotionFinished = function() {
        trace("Закончилось движение по оси X");
        trace(this.obj);
        this.obj.varTweenXScale = new Tween(this.obj, "_xscale", false,100, 200,  1, true);
        this.obj.varTweenYScale = new Tween(this.obj, "_yscale", false, 100, 200,  1, true);
};

Пробуй.
На рабочем поле должен быть создан obj_mc Moive Clip.

CROL 13.12.2007 22:02

Цитата:

Сообщение от Fernando Costa
Код:

mc._x = 0
mc._y = 0
var  par = 0;

mc.onEnterFrame = function() {
    par++
    if (par<=20) this._x+=5
    if (par > 20) {
      this._xscale+=1;
      this._yscale+=1;
    }
}

:victory:

а как допустим отсановить анимацию при достижении определенной ширины?

koIIImarik 13.12.2007 22:26

Советую использовать мой пример, там можно чётко указать размер _xscale/_yscale до которого должна происходить анимация. Хотя смотрите сами.

FourSide 14.12.2007 10:53

Код:

if (par1 = 0) {...}
Заодно про ошибку - вы не сравниваете в этом условии. Вы просто в операторе if присваиваете новое значение переменной par1.

Fernando Costa 14.12.2007 13:33

2 CROL, кстати советую приглянуться вам к коду кошмарика, я просто сделал ваш код работающим. Но лучше все-равно для таких целей пользоваться классом Tween, TweenLite или Tweener

CrazyFlasher 14.12.2007 13:55

Цитата:

2 CROL, кстати советую приглянуться вам к коду кошмарика, я просто сделал ваш код работающим. Но лучше все-равно для таких целей пользоваться классом Tween, TweenLite или Tweener
ну не надо людей сразу учить пользоваться тупыми классами и компонентами...пусть для саморазвития сам пишит, а если вопросы - задаёт

CROL 14.12.2007 18:57

да, я понял что пример с классами использовать проще, но не понял до конца как... вот у меня прошла эта анимация:
Код:

obj_mc.varTween = new Tween(obj_mc, "_x", Regular.easeOut, -100, 50, 0.5, true);
obj_mc.varTween.onMotionFinished = function() {
        new Tween(obj_mc, "_x", Regular.easeOut, 50, 10, 0.35, true);
        this.obj.varTweenXScale = new Tween(this.obj, "_xscale", false,100, 110,  0.3, true);
        this.obj.varTweenYScale = new Tween(this.obj, "_yscale", false, 100, 110,  0.3, true);
}

как добавить после этого еще 1 действие к obj_mc, и как после анимации obj_mc начать анимацию obj_mc2 допустим тот же Tween по _x??

и объясните пожалусто разницу между Tween, TweenLite или Tweener =|

koIIImarik 15.12.2007 00:13

Цитата:

Сообщение от CROL
как добавить после этого еще 1 действие к obj_mc, и как после анимации obj_mc начать анимацию obj_mc2 допустим тот же Tween по _x??

Код:

obj_mc.varTween.onMotionFinished = function() {
        new Tween(obj_mc, "_x", Regular.easeOut, 50, 10, 0.35, true);
        this.obj.varTweenXScale = new Tween(this.obj, "_xscale", false,100, 110,  0.3, true);
        this.obj.varTweenYScale = new Tween(this.obj, "_yscale", false, 100, 110,  0.3, true);
        //ЕЩЁ ОДНО ДЕЙСТВИЕ к obj_mc
this.obj.varTweenWidth = new Tween(this.obj, "_width", false, 100, 200,  0.3, true);
        //ДЕЙСТВИЕ для obj2_mc, если оно находится на _root
_root.obj2_mc.varTweenX = new Tween(this.obj, "_x", false, 100, 200,  0.3, true);
}



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

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