私はマスクする必要のあるコンテンツ領域として機能するコンテナMovieClipを持っています。私は形を使用して、このコンテナ内のマスクを作成するとき、私はボタンなどのように、私はここで作成した他のコンテナの内容と対話するように見えることはできませんActionscript 3と動的マスク
これは私が(私が残してきたコードでやっているものですすべてのインポートのなどアウト):
class MyContainer extends MovieClip
{
protected var masker : Shape = null;
protected var panel : MyPanel = null;
public function MyContainer()
{
this.masker = new Shape();
this.masker.graphics.clear();
this.masker.graphics.beginFill(0x00ff00);
this.masker.graphics.drawRect(0, 0, 1, 1); // 1x1 pixel.
this.masker.graphics.endFill();
addChild(this.masker);
this.panel = new MyPanel(); // has buttons and stuff.
addChild(this.panel);
this.mask = this.masker;
}
// called by it's parent when the stage is resized.
public function resize(width : Number, height : Number) : void
{
// set the mask to half the size of the stage.
this.masker.width = width/2;
this.masker.height = height/2;
// set the panel to half the size of the stage.
this.panel.resize(width/2, height/2);
}
}
私はもはやMyPanelで定義されているものは何でもボタンと対話することはできません表示階層にマスク(形状)を追加します。ただし、ではなくです。表示階層にマスクを追加すると、MyPanelのコンテンツと対話できますが、マスクのサイズや配置が正しく行われません。マスクがディスプレイ階層に追加されていないときは、ムービーの左上隅に置かれていると思います(私はこれを証明することはできません)。
は、どのように私は正しく私のマスクサイズ/位置を作って行くと、ユーザーがMyPanelのボタンと対話してみましょうか?
しかし、マスカーはシェイプであり、したがってmouseEnabledプロパティがありません。スプライトの代わりにシェイプを使用した理由です。 – Luke
Shapeの代わりにSpriteを使ってテストしました(mouseEnabledプロパティをfalseに設定)。どちらもうまくいきません。 : – Luke
おそらく問題はあなたのMyPanelクラスにありますか?上記の追加されたコードでテストしたところ、期待どおりに動作します –