![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Код класса (AS2):
import mx.transitions.Tween;
import mx.transitions.easing.*;
class Character {
var currMc:MovieClip;
var beginScale:Number;
var TweenX:Tween;
function Character(mc:MovieClip,x:Number, y:Number, scale:Number) {
currMc = mc;
trace("currMc: "+currMc);
currMc._x = x;
currMc._y = y;
beginScale = scale;
currMc._xscale = currMc._yscale=beginScale;
inTweens();
}
function inTweens() {
TweenX = new Tween(currMc, "_x", None.easeNone, currMc._x, currMc._x+40, 2, true);
TweenX.onMotionFinished = function() {
trace("currMc: "+currMc);
};
}
}
this.createEmptyMovieClip("characters_mc",this.getNextHighestDepth());
characters_mc.attachMovie("smokeFish","smokeFish",characters_mc.getNextHighestDepth());
var fish:Character = new Character(characters_mc.smokeFish,200, 200, 100);
Не могу понять почему. если писать просто без класса. напрямую указывая MovieClip, к которому применяется Tween, работает корректно Спасибо
__________________
http://www.every1knows.com |
|
|||||
|
Я тему все не прочел. Но по классу вы должны использовать Делегат чтобы было видно CurMc
import mx.transitions.Tween; import mx.transitions.easing.*; class Character { var currMc:MovieClip; var beginScale:Number; var TweenX:Tween; function Character(mc:MovieClip,x:Number, y:Number, scale:Number) { currMc = mc; trace("currMc: "+currMc); currMc._x = x; currMc._y = y; beginScale = scale; currMc._xscale = currMc._yscale=beginScale; setTimeOut(mx.utils.Delegate.create(this,inTweens),10); } function inTweens() { TweenX = new Tween(currMc, "_x", None.easeNone, currMc._x, currMc._x+40, 2, true); TweenX.onMotionFinished = function() { trace("currMc: "+currMc); }; } } |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
import mx.transitions.Tween; import mx.transitions.easing.*; import mx.utils.Delegate; class Character { private var currMc:MovieClip; private var beginScale:Number; private var tweenX:Tween; public function Character(mc:MovieClip, x:Number, y:Number, scale:Number) { currMc = mc; trace("currMc: " + currMc); currMc._x = x; currMc._y = y; beginScale = scale; currMc._xscale = beginScale; currMc._yscale = beginScale; inTweens(); } private function inTweens():Void { tweenX = new Tween(currMc, "_x", None.easeNone, currMc._x, currMc._x + 40, 2, true); tweenX.onMotionFinished = Delegate.create(this, onMotionFinishedHandler); } private function onMotionFinishedHandler():Void { trace("currMc: " + currMc); } } |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Цитата:
Цитата:
|
|
|||||
|
Не !
Ты не понял. Я имел ввиду другой вопрос Вот что я имел ввиду, как таким образом можно запустить! |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Тут без разницы, что с делегатом, что без делегата, метод inTweens() вызывается в области видимости объекта Character. А вложенная функция вызывается в области видимости TweenX, поэтому и currMc flash ищет в TweenX. Поэтому не годится такой вариант.
|
|
|||||
|
Спасибо огромное.
Сама бы не нашла ответ ![]()
__________________
http://www.every1knows.com |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:23. |
|
|
« Предыдущая тема | Следующая тема » |
|
|