2011-08-11 1 views
0

私は、画像を取得するアクションスクリプト3のコードを作成しました。アドチャイルドはそれを行い、マスクを追加します。Flash AS3マスクのオーバーラップホールを削除するにはどうすればよいですか?

私が作ったマスクがアニメーションMovieClipであり、このMovieClipは、そのMovieClipの中に2つ以上のオブジェクトが重なっているいくつかのスポットを隠している点を除いて、すべてうまくいきます。 このエフェクトを削除する方法が見つかりませんでしたので、マスクは重ねても有効です。

基本的に、AS3で重複除外効果を無効にする方法を知る必要があります。この問題を解決するための設定がありますか?ここ

コード:

// area is a MovieClip 
// images_loaded[current_int] is a loaded image 
// slider is a MovieClip, which I use to mask with 
next_image   = area.addChild(images_loaded[current_int]); 
next_image.x  = 0; 
next_image.y  = 0; 
var masky:MovieClip = new slider; 
masky.x    = 0; 
masky.y    = 0; 
area.addChild(masky); 
next_image.mask = masky; 

ありがとう!

EDIT:

ここで問題です:

Example

スライダーのMovieClipは7層を得ました。第1層は文字Mであり、第7層は大きな箱である。基本的には最初に手紙でマスクを塗りつぶしてから、それをバイクスボックスで覆います。しかし、これらの2つのオーバーレイをグレーの結果(バックグラウンド)にすることができます。 このオーバーラップ効果を持たず、全体の画像を表示したいのですが。

+0

それは問題は、ムービークリップを見ずであるかを理解するために少し難しいです。あなたは問題のスクリーングラブを掲示できますか(もしかするとマスクかもしれませんし、多分あなたはそれが見えるようにしたいかもしれません)? –

+0

これ以上の情報を追加しました。 –

答えて

0

この問題は、すべてを1つのレイヤーに分割することで早く解決しました。それで、お互いに重なる層はありませんでした。

This articlethe commentsには、奇妙なマスク動作の非常に優れた解決策が含まれています。うまくいけば彼らもあなたを助けるでしょう!常に試してみる価値がある

一つsolutonはcacheAsBitmap = true

1

これは、あなたがGraphicsPathクラスまたはdrawPath()機能のいずれかを使用してグラフィックを作成している場合、単にwindingパラメータに適切な値を代入flash.display.GraphicsPathWinding

によって引き起こされます。描画コンビニエンスメソッド(IE:drawRect)を使用してマスクSprite内にグラフィックスを作成している場合は、各描画をbeginFill()endFill()でラップすることで問題を巻き付かないようにできます。

ので、代わりにこの執筆:この

s.graphics.beginFill(0xFF0000, 1.0); 
s.graphics.drawRect(0, 0, 100, 100); 
s.graphics.drawRect(20, 20, 100, 100); 
s.graphics.drawRect(40, 40, 100, 100); 
s.graphics.endFill(); 

enter image description here

書き込み:Flashで謎ことができることを確認してマスキング

s.graphics.beginFill(0xFF0000, 1.0); 
s.graphics.drawRect(0, 0, 100, 100); 
s.graphics.endFill(); 
s.graphics.beginFill(0xFF0000, 1.0); 
s.graphics.drawRect(20, 20, 100, 100); 
s.graphics.endFill(); 
s.graphics.beginFill(0xFF0000, 1.0); 
s.graphics.drawRect(40, 40, 100, 100); 
s.graphics.endFill(); 

enter image description here

+0

これは私の問題を非常に思い出させますが、私は準備が整ったムービークリップとアニメーションを持っています。これはおそらくendFill()を置くことができません。これを無効にする何らかの設定がありますか? –

関連する問題