Amazon.co.jp ウィジェット Spriteとマウスイベントとの関係 Rectangle(四角)編 - PC破壊日記的ブログ

Home > Flash > | ソフト公開 > Spriteとマウスイベントとの関係 Rectangle(四角)編

Spriteとマウスイベントとの関係 Rectangle(四角)編

このエントリーをはてなブックマークに追加

先日誤って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、つまり透明で塗りつぶしを指示しています。

今回はここまで。
この先これを使うかは分かりませんが・・・。
ちょっと作りが複雑でね・・。


Comments:0

Comment Form

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破壊日記的ブログ
  • タグ: ActionScript, Adobe, Flash
  • Home > Flash > | ソフト公開 > Spriteとマウスイベントとの関係 Rectangle(四角)編

    2進数時計
    ※クリックで読みやすくなります。
    ※この時計の時刻は、閲覧しているパソコンのものであり、必ずしも正確な時間とは限りません
    Search
    Feeds
    Google Adsense
    Tag Cloud

    このページの最初に戻る