Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   как вызвать функцию из класса? (http://www.flasher.ru/forum/showthread.php?t=137940)

filepark 26.03.2010 04:40

как вызвать функцию из класса?
 
Основной код находится в временной шкале в fla-файле, создаю дополнительный класс, мне нужно вызвать функцию основного кода из этого класса, как?

dmitriev 26.03.2010 08:18

Вы класс создаёте на временной шкале? Если да, то передайте в коструктор ссылку на этот ваш главный мувик, как-то так:
Код AS3:

var foo:MyClass = new MyClass(this);


filepark 26.03.2010 09:06

вероятно я непонятно объяснил
Код AS3:

//код на временной шкале
var myButtom:MyButton=new MyButton();
addChild(myButtom);
function myFunc(){
        trace("работает!");
}

Код AS3:

//класс MyButton
package {
        import flash.display.MovieClip;
        import flash.events.MouseEvent;
        import flash.events.Event;
 
        public class MyButton extends MovieClip {
                public function MyButton() {
                        addEventListener(MouseEvent.CLICK, clickHandler);
                }
                private function clickHandler(event:Event):void {
                        myFunc();
                }                               
        }
}
//очевидно нужно указать, что myFunc(); находится
//не в этом классе, а на временной шкале, как?


zuxul 26.03.2010 10:53

не проще сделать так?
Код AS3:

var myButtom:MyButton=new MyButton();
addChild(myButtom);
function myFunc(){
        trace("работает!");
}
myButton.addEventListener(MouseEvent.CLICK, myFunc);

Если же Вам все-таки надо то, что Вы надумали, можно сохранить myFunc в переменную класса, как то так:
Код AS3:

myButton.setMyFunc(myFunc)

Код AS3:

package {
        import flash.display.MovieClip;
        import flash.events.MouseEvent;
        import flash.events.Event;
 
        public class MyButton extends MovieClip {
                private var handler:Function;
                public function MyButton() {
                        addEventListener(MouseEvent.CLICK, clickHandler);
                }
                public function setMyFunc(func:Function):void {
                        handler = func;
                }
                private function clickHandler(event:Event):void {
                        handler();
                }                               
        }
}



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

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