Форум 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)
-   -   [AS2] Вопрос о клипе, объекте и объектовых свойствах (http://www.flasher.ru/forum/showthread.php?t=77202)

alexGoHome 20.03.2006 16:55

[AS2] Вопрос о клипе, объекте и объектовых свойствах
 
Господа, помогите пожалуйста решить одну проблему.
Существует класс
Код:

class Footballer
{
        private var _fUID :Number =null;
        private var _fName : String = null;

            function Footballer(fUID :Number, fName :String){
                this._fUID = fUID;
                this._fName = fName;

                this.CreateFootballer();
        }

            private function CreateFootballer():Void{
       
                this.i = _root.createEmptyMovieClip ("foot"+this.fUID.toString(),_root.getNextHighestDepth());
                this.foot = this.i.attachMovie("mcFootballer","foot_mc",this.i.getNextHighestDepth());
            }

                        this.i.onPress=function(){
// здесь по клику нужно бы сохранить ссылку на объект данного класса в
//статическую переменную другого класса               

                        ControlFootballer.Foot = this;       
                }

}

Проблема в том, что в ControlFootballer.Foot сохраняется только ссылка на this.i,
и обратиться к некому public свойству ControlFootballer.Foot.fName ( значение для _fName не определено) не возможно.
Подскажите как в ControlFootballer.Foot запихать ссылку на весь объект класса Footballer?

Спасибо

silin 20.03.2006 19:35

вар.1: сохранять ссылку на экземпляр в создаваемом мувике:
Код:

private function CreateFootballer () : Void        {
        var i = _root.createEmptyMovieClip ("foot" + _fUID.toString () , _root.getNextHighestDepth ());
        i.ref=this;
        i.attachMovie ("mcFootballer", "foot_mc", this.i.getNextHighestDepth ());
        i.onPress = function (){
                ControlFootballer.Foot = this.ref;
        }
}

вар.2: использовать Delegate:
Код:

private function createFootballer () : Void        {
        var i = _root.createEmptyMovieClip ("foot" + _fUID.toString () , _root.getNextHighestDepth ());
        i.onPress=Delegate.create(this,onPress);
        i.attachMovie ("mcFootballer", "foot_mc", i.getNextHighestDepth ());
}
function onPress()        {
        ControlFootballer.Foot = this;
}


alexGoHome 21.03.2006 02:33

Спасибо, Делегаты в АС2 не нашел, а вот первый вариант работает хорошо! :)


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

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