Форум 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)
-   -   Классы и onEnterFrame (http://www.flasher.ru/forum/showthread.php?t=86612)

Kotenochek 19.10.2006 12:47

Классы и onEnterFrame
 
Добрый день пытаюсь разобраться с классами как мышку из класса слушать нашла

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

Цитата:

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

мувиклип изначально подписан на прослушку 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());
        }
}



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

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