AS3 Класс Расширяющийся Спрайт - PullRequest
2 голосов
/ 05 марта 2010

Я новичок в ActionScript, так что извините, если это глупый вопрос.

Итак, я создал класс, расширил класс sprite, и теперь в конструкторе я пытаюсь установить свойства ширины и высоты Sprite, которые наследуются от DisplayObject. Однако после того, как я установил this.width и this.height и напечатал значения, я получаю 0 для обоих.

Что, черт возьми, происходит? Когда я просматриваю liveocs, я вижу, что DisplayObject имеет ширину и высоту, указанные в качестве открытых свойств. Я смог создать экземпляр Sprite напрямую и установить ширину и высоту после его создания, поэтому я не могу его получить.

package  {
    import flash.display.*;

    public class ScrollBar extends Sprite {
        public function ScrollBar(width:Number, height:Number) {
            trace(width + "x" + height);
            this.width = width;
            this.height = height;
            trace(this.width + "x" + this.height);          
    }
}

Выход:

20x400
0x0

1 Ответ

5 голосов
/ 05 марта 2010

Из документов :

Ширина рассчитывается на основе границы содержания дисплея объект. Когда вы устанавливаете ширину свойство scaleX скорректированы соответственно ... за исключением Объекты TextField и Video, отображение объект без содержимого (например, пустой спрайт) имеет ширину 0, даже если вы попытаетесь установить ширину к другому значение.

Вам нужно будет отрендерить что-то как часть спрайта, чтобы получить действительный w / h.

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