Tweet |
先日誤ってAdobe FlashをIYHしてしまったので、
せっかくなので昔から作ろうと考えていたゲームをFlashで作ろうかと。
というのも、どうしてもJavascriptでは、マウスやキーボードイベント関係で難しい部分があったためです。
今回は、Spriteで四角形を描き、マウスイベント(MOUSE_OVER:マウスカーソルがSpriteの上に来たとき)
を実行しようと試みました。
しかし、なぜか反応が極端に悪い。
何回か通過させると反応することもあるのですが、これでは実用に耐えません。
最初はFlashが重すぎるのかと考えましたが、Flashの負荷状況を調べる
stats(ActionScript入門Wiki@rsakane - FPS、メモリ使用量を可視化するStatsを使用する)
を使用して調べてみると、いくらマウスを動かしても負荷が高すぎることなんか全然ありません。
これはどういうことか。
続きは「続きを読む」より・・・。
この問題を調査するために、traceコマンドを使用してみたりいろいろと調査。
すると、
・Spriteに描いたRectangle(四角形)の線の上でのみMOUSE_OVERイベントが出力されている
ということが発覚。
つまり、描いた線でのみ反応しているのです。
これを解決するにはどうするべきか。
今回は、透明で塗りつぶすことにしました。
描画部分のみ書きますが、
・改善前:
public var MySprite:Sprite;
MySprite = new Sprite();
var MyGraphics:Graphics = MySprite.graphics;
MyGraphics.lineStyle(1,0x000000);
MyGraphics.drawRect(0,0,100,100);
・改善後:
public var MySprite:Sprite;
MySprite = new Sprite();
var MyGraphics:Graphics = MySprite.graphics;
MyGraphics.lineStyle(1,0x000000);
MyGraphics.beginFill(0x000000,0.0);
MyGraphics.drawRect(0,0,100,100);
MyGraphics.endFill();
α値0、つまり透明で塗りつぶしを指示しています。
今回はここまで。
この先これを使うかは分かりませんが・・・。
ちょっと作りが複雑でね・・。
- Newer: 有線/無線マウス、Logicool G700を購入、しかし...
- Older: epgrecで録画できない、予約できない場合の対処法
Comments:0
Trackbacks:0
- TrackBack URL for this entry
- https://pc-diary.com/movt_direc_post/mt-tb.cgi/1572
- Listed below are links to weblogs that reference
- Spriteとマウスイベントとの関係 Rectangle(四角)編 from PC破壊日記的ブログ