PDA

Просмотр полной версии : Классы и onEnterFrame


Kotenochek
19.10.2006, 12:47
Добрый день пытаюсь разобраться с классами как мышку из класса слушать нашла

private function onMouseMove()


А как мне смену кадров отловить? Как заставить мувиклип каждую смену кадра что-нить делать?

Juice_Green
19.10.2006, 13:12
если класс вешается на клип в библиотеке, то переопределить функцию onEnterFrame, иначе на создаваемый мувик явно повешать onEnterFrame

Kotenochek
19.10.2006, 14:19
А можно подробнее с примера... крас в библиотеке не вешаю... просто рядом с флешкой лежит файлик as

wvxvw
19.10.2006, 14:31
class MyMovieClip extends MovieClip{
var mc:MovieClip;
function MyMovieClip(){
mc = _root.createEmptyMovieClip("mc", 0);
with(mc){
beginFill(0, 100);
moveTo(0, 0);
lineTo(100, 0)
lineTo(100, 100);
lineTo(0, 100);
lineTo(0, 0);
}
}
public function myOnEnterFrame(functions:Object):Void{
mc.onEnterFrame = function(){
functions.fName(functions.fPars[0]);
}
};
}

var _mc:MyMovieClip = new MyMovieClip();
var _mes:String = "Halo!";
var fObj:Object = {};
function tracer(message:String){
trace(message);
}
fObj = {fName:tracer, fPars:[_mes]};
_mc.myOnEnterFrame(fObj);

silin
19.10.2006, 19:50
А как мне смену кадров отловить? Как заставить мувиклип каждую смену кадра что-нить делать?
мувиклип изначально подписан на прослушку onEnterFrame, т.е. если у него определен метод onEnterFrame, то он будет вызван при каждой смене кадра..
если речь о том как заставить поизвольный класс слушать onEnterFrame, то можно, например, создать пустой мувик, который вместо своего onEnterFrame будет вызывать метод класса:
import mx.utils.Delegate;
class SomeClass {
function SomeClass(){
var mc=_root.createEmptyMovieClip("dispatcher",_root.getNextHighestDepth());
mc.onEnterFrame=Delegate.create(this,onEnterFrame);
}
function onEnterFrame(){
trace(getTimer());
}
}