Почему графический объект Sprite не отображается на экране? - PullRequest
0 голосов
/ 14 февраля 2010

Когда я отлаживаю свой код, на экране ничего не появляется. Я перепроверил код и проконсультировался с другими, но ничего не появляется. Мой HTML-шаблон в порядке.

package {
    import flash.display.Sprite;
    import flash.events.*;


    public class asgnv2 extends Sprite
    { 
        var lineY = 0;
        public function asgnv2()
        {
            stage.addEventListener(Event.ENTER_FRAME, update);
            graphics.lineStyle(1);
        }
        function update(e){
            graphics.clear();
            graphics.moveTo(0 ,lineY);
            graphics.lineTo(100, lineY);
            lineY+=0.5;

            }

        }
    }

1 Ответ

1 голос
/ 14 февраля 2010

, если asgnv2 не является классом Document, он не будет работать, так как вы регистрируете событие ENTER_FRAME на этапе внутри конструктора asgnv2. DisplayObject не может получить доступ к свойству рабочей области, пока оно не будет добавлено в список отображения рабочей области. Поэтому попробуйте следующее.

public function asgnv2(){
  this.addEventListener(Event.ADDED_TO_STAGE, onAdded);
  graphics.lineStyle(1);
}</p>

<p>private function onAdded(e:Event):void {
  stage.addEventListener(Event.ENTER_FRAME, update);
  this.removeEventListener(Event.ADDED_TO_STAGE, onAdded);
}
private function update(e:Event):void{
  //do the stuff
}
...