1

別のスプライトの上に透明なスプライトを配置する必要があります。オーバーレイするスプライトは、いくつかのマウスイベントを受け入れます。ユーザーが上部のスプライトの上にマウスを移動すると、曲線が描画されます。処理された後、ベーススプライトに描画されます(上部で消去されます)。

私が今持っているアイデアは、スプライトを配置し、スプライトのサイズと等しいサイズの長方形を描画し、アルファを0に設定することです。

問題は少しダンプです:おそらく提案された解決策は最善ではありません。幅と高さを設定するためのより良い方法はありますか(私が理解している限りでSprite.width = w;は役に立ちません)?

前もって感謝します!

4

1 に答える 1

4

そのスプライトの上に描画することはできますが、寸法を直接設定することはできません。だからあなたはこのようにすることができます:

graphics.beginFill(0,0); // zero alpha fill
graphics.lineStyle(0,0,0); // invisible lines
graphics.drawRect(0,0,width,height);
graphics.endFill();

このようにして、スプライトのアルファを1のままにして、子であるものを非表示にしないようにすることができます。次に、そのスプライトで描画することにした曲線が何であれ、graphics.moveToおよびgraphics.lineToを介して子Shapeオブジェクト内に描画できます。

更新:以下のコメントによると、アルファを0に設定しても、新しいバージョンのFlashプレーヤーでは機能しないため、イベントをオーバーラップするスプライトに登録するには、アルファをゼロ以外の量に設定する必要があります。

graphics.beginFill(0x808080,0.01); // almost zero alpha fill
于 2012-09-27T17:57:12.973 に答える