Вот ее синтаксис:
MovieClip.addFrameScript(frame_number:uint,function_to_call:Function)
Пример:
function myFunction()
{
trace('10th frame')
}
addFrameScript(9, myFunction); // кадры нумеруются с 0
Осталось только научится передавать параметры в эту функцию. Тут нам поможет класс Delegate от Ian Thomas.
package
{
public class Delegate
{
public static function create(handler:Function,...args):Function
{
return function(...innerArgs):void
{
handler.apply(this,innerArgs.concat(args));
}
}
}
}
Теперь мы можем вызывать нашу функцию с параметрами:
package {
import flash.display.*;
public class main extends Sprite {
public function main() {
for (var i:int=0; i<10; i++) {
var mc:MovieClip = new Quad() as MovieClip;
addChild(mc);
mc.addFrameScript(mc.totalFrames-1,Delegate.create(myFunction,i));
}
}
private function myFunction(i:int):void {
trace(i);
}
}
}
Оригинал
Кстати, Денис Коляко недавно ниписал класс ClipFactory.
Класс ClipFactory позволит вам создавать обычный мувиклип с указанным количеством пустых кадров, который вы в последствии сможете использовать в качестве анимационного клипа, выполняя действия в каждом кадре (навесив обработчики через метод addFrameScript).
4 комментария:
Вот это реално вещь! Спасибо
http://etcs.ru/blog/as3/clipfactory/
:)
ага, спасибо.
анализ разработки разработка сайтов http://web-miheeff.ru анализ разработки
Отправить комментарий