2011-02-04 21 views
0

私は、ユーザーが画面上に描画できるページが1つあるウェブサイトを構築しています。すべては、私は別のページに図面ページから変更されたとき、私はこのエラーを取得するため除いて正常に動作します:ここにステージをクリアするにはどうすればよいですか?

TypeError: Error #1009: Cannot access a property or method of a null object reference. 
    at doodle_fla::MainTimeline/startDrawing() 
TypeError: Error #1009: Cannot access a property or method of a null object reference. 
    at doodle_fla::MainTimeline/stopDrawing() 

は私のコードです:

var color:Number; 

stage.addEventListener(MouseEvent.MOUSE_DOWN, startDrawing); 
stage.addEventListener(MouseEvent.MOUSE_UP, stopDrawing); 

function startDrawing(e:MouseEvent):void { 
    stage.addEventListener(MouseEvent.MOUSE_MOVE, makeShapes); 
    color = Math.random() * 0xFFFFFF; 
} 

function stopDrawing(e:MouseEvent):void { 
    stage.removeEventListener(MouseEvent.MOUSE_MOVE, makeShapes) 
} 

function makeShapes(e:MouseEvent):void { 
     var ellipse:Ellipse = new Ellipse(10, 10, color); 
     addChild(ellipse); 
     ellipse.x = mouseX; 
     ellipse.y = mouseY; 
} 

は、どのように私は、ステージをクリアしていますか?

+0

1に戻って、あなたがそれを切り替えるたびにそれらを追加する必要がありますリスナー。 2.別のSpriteに省略記号を追加して、そこにあるすべての '子'クリップを削除することをお勧めします。削除したいインスタンスが楕円であるかどうかを確認する必要がある場合は、乱雑になります。すべての子ムービークリップを次のように削除できます。while(ellipsesContainer.numChildren)ellipsesContainer.removeChildAt(0); –

答えて

2
stage.removeEventListener(MouseEvent.MOUSE_DOWN, startDrawing); 
stage.removeEventListener(MouseEvent.MOUSE_UP, stopDrawing); 

あなたが描画モードを残して、しかし、あなたは別のページに移動すると、コンテンツを切り替える前に、startDrawning、stopDrawingイベントを削除

関連する問題