うむるむ

うむるむ は主に flash 周りの話と美少女ゲーム系の話の二本立てで構成されています。



[ AS3 ] swf領域からのマウスアウト取得 - 09/01/28 00:37 by um

FLASH-JP.COM - フォーラム 表示領域全体からのマウスアウトの検出方法スレより。
たまにこれをやりたい時があってその都度悩んでいた。なるほどなと思った。
ステージからマウスが離れる MOUSE_LEAVE を監視して、離れたら今度はステージ上でマウスが動く(ステージにマウスインする)事を監視する。インが確認できたらまた MOUSE_LEAVE を監視のループ。

これをやりたいがために昔、jsを使って悪戦苦闘した覚えがある。
swfを埋め込んだdivタグのロールオーバーをjsで取得して、flashに渡して、、、
と面倒なことこの上なかった。

マウス座標をもとにオブジェクトを動かす場合、swfの領域外だったりブラウザ外にマウスが行った時などにおかしな動作をするけど、これも予期せぬアクションの一つの抑制になるなー。

最後に、ドキュメントクラスのサンプルを以下に。
html に埋め込んで試さないと意味ないかも。

package
{
  import flash.display.MovieClip;
  import flash.text.TextField;
  import flash.events.Event;
  import flash.events.MouseEvent;
 
  public class Main extends MovieClip
  {
 		
    private var tf:TextField;
 		
    public function Main():void
    {
      tf = new TextField();
      tf.border = true;
 			
      addChild(tf);
 			
      stage.addEventListener(Event.MOUSE_LEAVE, reaveStage);
    }
 		
    private function reaveStage(evt:Event):void
    {
      stage.removeEventListener(Event.MOUSE_LEAVE, reaveStage);
      stage.addEventListener(MouseEvent.MOUSE_MOVE, enterStage);
      tf.text = "reave";
    }
 		
    private function enterStage(evt:Event):void
    {
      stage.addEventListener(Event.MOUSE_LEAVE, reaveStage);
      stage.removeEventListener(MouseEvent.MOUSE_MOVE, enterStage);
      tf.text = "enter";
    }
 		
  }
 	
}

« [ 雑記 ] HDDはHGSTで決まり | ブログトップ | [ AS3 ] 非Progressionで初めのフレーム容量を軽くする »

トラックバックURL :




管理人 um(うむ)@web界の底辺労働者
連絡先 umroom@gmail.com
twitter http://twitter.com/umroom