РЕДАКТИРОВАТЬ: обновил код, чтобы он создал поддельные сроки. Этот код был основан на ответе alecmce. Просто добавлена возможность секвенирования Твинов. Поскольку ваш вопрос заключается в том, как реплицировать членов класса без класса, с помощью динамического Actionscrip вы можете псевдо написать класс внутри объекта и предоставить вам тот же синтаксис при вызове функций. Перефразировать: Единственное предложение сделать это, чтобы дать вам тот же синтаксис. Та же функциональность может быть достигнута при удалении объекта timeline
.
пример с двумя последовательными twens:
timeline.append( MyClip, 367);
timeline.append( MyClip2, 200 );
timeline.startAnimation();
(см. Обновленный код ниже)
мой 10-минутный неуклюжий подход:
// updated code
var timeline:Object = new Object();
timeline.memory = new Array();
timeline.append = function (tween_obj:MovieClip, toY:Number){
this.memory.push ([tween_obj, toY]);
};
timeline.checkTimeline = function (){
if (this.memory[0] != null) {
this.TweenFeather(MovieClip(this.memory[0][0]));
}
};
timeline.startAnimation = function () {
this.checkTimeline();
};
timeline.TweenFeather = function TweenFeather(_do:MovieClip):void
{
_do.addEventListener(Event.ENTER_FRAME, _onEnterFrame);
var time:Number = 0;
var deltaTime:Number = 1 / stage.frameRate;
var initY:Number = _do.y;
var deltaY:Number = this.memory[0][1] - initY;
function _onEnterFrame(event:Event):void
{
time += deltaTime;
if (time >= 1)
{
_do.removeEventListener(Event.ENTER_FRAME, _onEnterFrame);
_do.y = timeline.memory[0][1];
timeline.memory.shift();
timeline.checkTimeline();
}
else
{
_do.y = deltaY * (-Math.pow(2, -10 * time) + 1) + initY;
}
}
}
timeline.append( MyClip, 367);
timeline.append( MyClip2, 200 );
timeline.startAnimation();
используя динамический actionScript, вы теряете все хорошие качества as3, не знаю, насколько вы ограничены в k.
Удачи