Как мой класс AS3 передает 0 аргументов, хотя я указал один? - PullRequest
0 голосов
/ 07 февраля 2020

Так в основном; Я работал над тестовым игровым проектом в ActionScript 3 и решил создать класс, который будет выполнять роль своего рода снаряда.

Это код для класса:

package  {

    import flash.display.MovieClip;
    import flash.events.Event;

    public class Symbol1 extends MovieClip {

        public var dir:Number;

        public function Symbol1(dir:Number) {
            // constructor code
            this.dir = dir;
            this.addEventListener(Event.ENTER_FRAME, speen);
        }
        public function speen(e:Event):void
        {
            e.target.x += 10*Math.cos(e.target.dir);
            e.target.y += 10*Math.sin(e.target.dir);
        }
    }

}

Выше кажется, работает; Но создание экземпляра - это совершенно новая проблема.

var a = new Symbol1(5);

Вышеприведенный код выводит:

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

Как мне заставить его пройти «dir» "Аргумент?

Ответы [ 2 ]

0 голосов
/ 30 апреля 2020

У вас есть экземпляр Symbol1 где-то в вашем поле и присутствует на сцене. Эта ошибка не вызывается "var a = new Symbol1 (5);" но по уже существующему символу sw.

0 голосов
/ 07 февраля 2020

Для начала: просто отбросьте весь «e.target» за время, потому что в вашем событии EnterFrame нет x, y и dir.

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