Передача параметров в конструктор для объекта (Actionscript 3) - PullRequest
0 голосов
/ 01 октября 2011

Я работаю над платформерной игрой с боковой прокруткой. Из-за этого у меня есть класс, который выступает в качестве пола. У меня также есть класс, представляющий врагов.

У меня проблемы с передачей параметра в конструктор пользовательского класса. Класс (SkullDemon.as) расширяет MovieClip. Я пытаюсь передать экземпляр (с именем «floorL1») класса клиента с именем «FloorLevel1». «FloorLevel1» также расширяет MovieClip (у меня нет записанного файла .as для «FloorLevel1»; я только что экспортировал Floor MovieClip в этот класс).

Я пытаюсь передать экземпляр «FloorLevel1», чтобы объект «SkullDemon» мог приземлиться на пол, как в платформере.

Мой основной класс называется "TME2_Main". Это класс, из которого я пытаюсь передать экземпляр «floorL1» классу «SkullDemon». Вот как я пытаюсь создать экземпляр Skull Demon и передать «floorL1» его конструктору:

skullD1 = new SkullDemon(floorL1);

Я пытаюсь создать SkullDemon в конструкторе "TME2_Main's".

Вот конструктор класса "SkullDemon":

        // Constructor (takes in Level 1's floor variable as an argument
    public function SkullDemon(floorL1:FloorLevel1) {
    //public function SkullDemon() {
        // Move the Skull Demon as soon as it is created
        moveSkullDemon();

    }

Я получаю два типа ошибок при запуске .swf:

ArgumentError: Error #1063: Argument count mismatch on SkullDemon(). Expected 1, got 0.
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at flash.display::MovieClip()
at TME2d_Main()

TypeError: Error #2007: Parameter child must be non-null.
at flash.display::DisplayObjectContainer/addChild()
at flash.display::Stage/addChild()
at TME2d_Main()

Что я здесь не так делаю? Я потратил некоторое время на поиск решений (включая перемещение кода за пределы конструктора TME2_Main), но пока мне ничего не помогло.

1 Ответ

0 голосов
/ 22 ноября 2011

Похоже, у вас есть экземпляр SkullDemon где-то на сцене. Если вы это сделаете, Flash попытается вызвать конструктор для SkullDemon без передачи аргументов. Обычно вы можете сказать, что это проблема, когда это происходит в методе класса Sprite constructChildren ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...