2

だから私はこのスプライトをステージに追加する任意に 100 x 100 と言います。このスプライトにコンテンツが追加されると、スプライトは自動的に拡張されます。私が望むのは、定義された境界、つまり 100 x 100 を設定することです。あまりにも多くのコンテンツを追加すると、スクロールできるようになります。私の問題は、寸法と数が異なるこのような他の多くのボックスがあるため、従来の方法のようにステージにマスクを追加できないことです。私はこれを行うことができる方法を見つけましたが、非常に非効率的です。私がしたことは、100x100 と言うムービークリップを作成し、それをインスタンス化することでした。次に、スプ​​ライトを追加しました。コンテンツが重なっている場合は、100x100 しか表示されません。私はこれに出くわしましたが、なぜこれが機能するのか正確にはわかりません。どんな助けでも大歓迎です、ありがとう。

これがコードです。

//a movieclip with its linkage called containerMasker has a blue square that serves as the mask

var myMasker = new containerMasker(); //the mask
var myContainer = new Sprite(); //the content being masked
//x and y coordinates fixed for both items, width also but no height

myMasker.addChild(myContainer);
addChild(myMasker);
4

1 に答える 1

7

これが標準的な方法です

myContainer.mask = myMasker;
addChild(myContainer);
addChild(myMasker);

多くのボックスでこれを行う必要がある場合は、それを処理するクラスを作成できます

public class MaskedItem は MovieClip を拡張します
{
  public function MaskedItem(params:Object)
  {  
      var masker:Sprite = new Sprite();
      masker.graphics.beginFill(0);
      masker.graphics.drawRect( 0 , 0 , params.maskWidth , params.maskHeight );
      masker.graphics.endFill();

      var mc:MovieClip = params.displayObject as MovieClip;
      mc.mask = マスカー;

      addChild( マスカー );
      addChild( mc );
  }
}

その後、あなたはすることができます

var mc1:MovieClip = new MaskedItem({maskWidth:100, maskHeight:100 , displayObject:mc1} );

于 2010-09-12T04:42:12.497 に答える