Я не совсем уверен, но предполагаю, что моя проблема связана с тем, как я объявляю свои переменные.

Допустим ли приведенный ниже код в AS3?

    var fish1:Fish = new Fish;
    var fish2:Fish = new Fish;
    var fish3:Fish = new Fish;
    var fish4:Fish = new Fish;
    addChild(fish1);
    addChild(fish2);
    addChild(fish3);
    addChild(fish4);
    fish1.x = 0;
    fish2.x = 150;
    fish3.x = 300;
    fish4.x = 450;

Я получаю ошибки компилятора для каждой строки addChild, говоря:

Main.as, строка 14 1180: вызов, возможно, неопределенного метода addChild. Main.as, строка 14 1120: Доступ к неопределенному свойству fish3.

И для каждой строки, где я указываю координаты x моей рыбы, я получаю сообщение об ошибке компилятора

Main.as, строка 15 1120: Доступ к неопределенному свойству fish4.

Переменные fish относятся к типу Fish, и я определил их в своей библиотеке в моем файле .fla. Заранее благодарю!

0
ritual_code 29 Мар 2013 в 22:57
Какой класс расширяет Fish? является ли свойство x общедоступным?
 – 
mfa
29 Мар 2013 в 23:06

1 ответ

Лучший ответ

Ваш класс должен наследовать некоторую форму DisplayObjectContainer, из которых MovieClip и Sprite являются двумя возможными вариантами (узнайте, обязательно).

Но я подозреваю, что настоящая проблема в том, что вы пишете код класса, как код временной шкалы. Я думаю, что у вас, вероятно, отключен строгий режим, поэтому вы не получаете полезных ошибок времени компиляции, которые помогут любому, кто знаком с AS3 (хотя, вероятно, не вам), сразу понять, что ваш код должен больше походить на

    class Main extends Sprite {
       public var fish1:Fish = new Fish();
       public var fish2:Fish = new Fish();
       public var fish1:Fish = new Fish();
       public function Main() {
          addChild(fish1);
          addChild(fish2);
          addChild(fish3);
          //not going to type this crap.
          //positioning code (and addChild) is a waste of time.
          //that's what the stage is for!
       }
    }
1
Amy Blankenship 29 Мар 2013 в 23:48
Это сработало! Оказывается, проблема с моим прицелом. Я объявлял переменные и вызывал addchild и x вне моей функции Main в моем классе Main. Спасибо вам за помощь!
 – 
ritual_code
30 Мар 2013 в 00:00