2016-09-23 7 views
0

マウスを動かすボードについてAS3プログラム(.swf出力)を書きましたが、色を青に設定すると青の内側エリアを囲むボードの黄色の外側領域になります。ユーザーが画面をクリックすると、青色になります。一度クリックすることなくプログラムの開始時にボードが青くなるようにプログラムを修正するにはどうすればよいですか?プログラムはこのリンクにアップロードされます:http://titusngiscoding.wixsite.com/movingboardAS3で起こりうる色エラー

そしてここにソースコードがあります。

package 
{ 
    import flash.display.Sprite; 
    import flash.events.MouseEvent; 
    public class FlashTest extends Sprite 
    { 
     public var board:Sprite; 
     public function FlashTest() 
     { 
      board = new Sprite(); 
      addChild(board); 
      board.graphics.beginFill(0x0099ff); 
      board.graphics.drawRect(0,stage.stageWidth-20,100,10); 
      board.graphics.endFill(); 
      board.x = stage.stageWidth /2 - board.width/2; 
      stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseEvent); 
      stage.focus = board; 
     } 
     public function onMouseEvent(event:MouseEvent):void 
     { 
      board.x = event.localX - board.width/2; 
      if(board.x <0) 
       board.x = 0; 
      if(board.x > stage.stageWidth - board.width) 
       board.x = stage.stageWidth - board.width; 
     } 
    } 
} 
+2

>ここにソースコードがあります。それはすべてではありません。あなたはクリックのためのeventHandlerを持っておらず、あなたはここで一つの色しか持っていません。どうすればこのコードで色を変えることができますか?残りの部分を追加すると、おそらく助けることができます。 –

+0

@Neal Davisそれはすべてのものなので、私は混乱してこの質問をしました。 –

答えて

1

1)stage.focus = board;この行は、黄色のアウトラインを起こし、それを削除するか、あなたがそれを必要とする理由を説明します。

2)board.graphics.drawRect(0,stage.stageWidth-20,100,10);なぜ、stageWidthをYポジションとして設定するのですか?

は、たぶん、あなたが欲しい: board.graphics.drawRect(0,stage.stageHeight-20,100,10);

PSを約board.x = event.localXあなたが好きならboard.x = stage.mouseXなる可能性があることを忘れないでください。

関連する問題