Как выполнить скрипт as3 из другого скрипта as3 во флэш-памяти? - PullRequest
0 голосов
/ 02 января 2011

У меня есть два файла as3 file1.as и file2.as. Когда пользователь нажимает кнопку в file1.as, я хочу, чтобы он выполнял file2.as. И если кто-то нажимает кнопку в file2.as, я хочу, чтобы он вернулся к file1.as.

Возможно ли это? Могу ли я прикрепить file2.as к кадру 2, а затем использовать gotoAndStop (2) из ​​file1.as.

Спасибо.

1 Ответ

2 голосов
/ 02 января 2011

Поскольку в вашем вопросе нет примеров кодов, я постараюсь дать общий ответ.

. В ActionScript 3 .as файлы (должны) соответствовать классам, и вы должны действительно думать об этом с точки зренияООП.Не прибегая к сценариям во фреймах, вам следует сконцентрировать file2.as в классе или метод внутри класса.Затем вы можете создать экземпляр объекта этого класса (выполняя вашу логику в конструкторе), когда кнопка нажата.Или просто создайте его экземпляр заранее и вызовите его метод, когда вы хотите, чтобы он был выполнен.

Кроме того, кажется, что то, что вы пытаетесь сделать, действительно выиграет от концепции событий и слушателей в AS3.

Редактировать: модифицированный пример кода:

A.as:

class A {
    public var myButton:Sprite;
    protected var myPong:B;

    public function A() {
        myButton.addEventListener(MouseEvent.CLICK, onClick)
    }

    protected function onClick(e:MouseEvent):void {
        myPong = new B();
        addChild(myPong);
        myPong.addEventListener("pong_closed", onPongClosed);
        myPong.startGame();
    }

    protected function onPongClosed(e:Event):void {
        myPong.removeEventListener("pong_closed", onPongClosed);
        removeChild(myPong);
        myPong = null;
    }
}

B.as:

class B {
    public function B() {
        // Game initialization code.
    }

    public function startGame():void {
        trace("ping ... pong ... ping ... pong ... ping");
    }

    public function close():void {
        trace("Closing Pong");
        // Your destruction code goes here.
        // ...
        dispatchEvent(new Event("pong_closed"));
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...