Форум 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=150704)

botbot 16.02.2011 18:02

Как обратится к объекту на сцене, который сделан в редакторе
 
Дело происходит в Flash CS5. Добавляю на сцену во второй кадр символ CarClip, пишу ему имя _carClip, ставлю в опциях "импорт в скрипт", "импорт во второй кадр". В коде пытаюсь присвоить ссылку на него в поле одного из классов, конкретно код такой:
Код AS3:

class Game extends MovieClip {
 
    public var carClip: CarClip;
 
    public function Game() {
 
        this.carClip = _carClip;      //_carClip это имя объекта на сцене, который мы по идее видим
 
    }
}

Но флеш ругается при компилировании, пишет что он не знает про _carClip.
Для полноты картины надо добавить, что Game я создаю тоже во 2-м кадре, вот код главного класса документа:
Код AS3:

class Main extends MovieClip {
 
    public function start(): void {
 
        gotoAndStop(2);
        new Game();
 
    }
}

Помогите пожалуйста. Да, есть ещё один вопрос по поводу всех этих имён. Я хочу, чтобы у меня поле в классе Game называлось так же, как и объект на сцене, т.е. carClip на сцене и в классе поле такое же:
Код AS3:

class Game extends MovieClip {
 
    public var carClip: CarClip;
 
    public function Game() {
 
        this.carClip = carClip;      //carClip это внешний объект
 
    }
}

Но при таком написании флеш считает carClip внутренним полем объекта и присваивает его сам себе. Есть возможность как-то указать что это внешний объект?

Gaen 17.02.2011 01:59

1. В настройках AS3 снимите галку "Automatically declare stage instances", и никогда больше не ставьте. В будущем избавит от подобных проблем.
2. Метод Main.start() не выполнится автоматически. Вы наверняка хотели сделать его конструктором и назвать Main.
3. Прочтите документацию по DisplayObjectContainer.getChildByName
4. Почитайте про области видимости переменных в AS3

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

botbot 17.02.2011 13:22

Цитата:

Сообщение от GAIKER (Сообщение 973920)
2. Метод Main.start() не выполнится автоматически. Вы наверняка хотели сделать его конструктором и назвать Main.

Ну про это вопроса небыло, я просто только кусок класса привёл, чтобы в лишнем коде не пришлось разбираться, там start() во 2-м кадре вызываться должен. По остальным ответам - спасибо, ушёл разбираться!

Котяра 17.02.2011 15:02

Цитата:

1. В настройках AS3 снимите галку "Automatically declare stage instances", и никогда больше не ставьте. В будущем избавит от подобных проблем.
Я, наоборот, всегда ставлю если нужно получить swc/swf ресурсов.


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

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