Ошибка при использовании методов получения / установки на Sprite - PullRequest
1 голос
/ 02 августа 2011

Я пытаюсь создать класс, который расширяет Sprite, к нему прикреплены некоторые частные свойства и я могу читать и записывать эти свойства с помощью методов получения и установки. Просто ... но компилятор выдает эту ошибку "Доступ к неопределенной скорости свойства через ссылку со статическим типом flash.display: Sprite." Это работает, если я устанавливаю свой класс для расширения объекта MovieClip. Может ли кто-нибудь объяснить мне логику этого? почему я не могу использовать геттер и сеттер со спрайтом?

Вот пример кода:

package  {

    import flash.display.Sprite;

    public class Vehicle extends Sprite{

        private var _speed:uint = 3;


        public function get speed():uint {
            return _speed;
        }

        public function set speed(value:uint):void {
            _speed = value;
        }


        public function Vehicle() {
            super();
        }

    }

}

1 Ответ

2 голосов
/ 02 августа 2011

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

Таким образом, это не работает:

var vehicle:Sprite = new Vehicle;
vehicle.speed = 5;

Это должно работать:

var vehicle:Vehicle= new Vehicle;
vehicle.speed = 5;

var vehicle:Sprite = new Vehicle;
Vehicle(vehicle).speed = 5; //We cast the vehicle instance to Vehicle type.

Также мы можем разыграть с помощью оператора as:

var vehicle:Sprite = new Vehicle;
(vehicle as Vehicle).speed = 5; //We cast the vehicle instance to Vehicle type.
...