2016-10-06 12 views
0

たとえば、ムービークリップの背後にある特定の領域にぼかしを追加するにはどうすればいいのでしょうか。そのムービークリップの領域内のすべてをぼかすマスクかもしれません。エリア内のすべてにぼかしを追加するAS3

私はすべてをぼかすにしたくない、AppleはそのメニューとAS3でこれを行うには

+0

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/filters/BlurFilter.html私はあなたのためにフラッシュAPIを探査しました; P –

答えて

1

唯一の方法をやっているようにムービークリップの背後にあるだけで何:) ソートへのMovieClipの背後にあるものは何でも描くですビットマップを作成し、ビットマップをぼかします。例えば


、あなたのMovieClipは、半透明の背景を持つある種のモーダルダイアログで、あなたはビットマップ上にその背後にあるステージにあるものは何でもぼかす(MovieClip内)次のスクリプトを使用することができます言います表面:この図は、「ライブ」ではないことを

// create a bitmap surface to use as a blurred background 
var blurData:BitmapData = new BitmapData(width, height, false); 
var blur:Bitmap = new Bitmap(blurData); 
addChildAt(blur, 0); // put the blur surface behind everything in the movieclip 

// this function draws the portion of the stage that's behind the movieclip 
// onto the bitmap surface, then blurs it 
function drawBlurBehind():void { 

    // fill the bitmap with the stage color first 
    blurData.fillRect(blurData.rect, stage.color); 

    // account for the coordinate offset of the stage and movieclip 
    var offset:Point = globalToLocal(new Point()); 
    var matrix:Matrix = new Matrix(); 
    matrix.tx = offset.x; 
    matrix.ty = offset.y; 

    // hide the movieclip so it doesn't show up in the blurred background 
    visible = false; 

    // draw the stage behind the movieclip onto the bitmap 
    blurData.draw(stage, matrix); 

    // blur the background bitmap 
    blurData.applyFilter(blurData, blurData.rect, new Point(), new BlurFilter(25, 25)); 

    // show the movieclip after the background has been blurred 
    visible = true; 
} 

注意して任意の時間は何も変更(あなたがムービークリップまたは何それは変更の後ろだを移動)あなたが再描画する必要があります。 ENTER_FRAMEイベントハンドラを使用して、すべてのフレームを継続的に再描画することができます。これは基本的にはライブになりますが、それは比較的高価になります。

また、このスクリプトはムービークリップの「背後」のものではなく、ステージ全体(ムービークリップを除く)を描画してぼかします。したがって、ムービークリップの上に表示され、ムービークリップの後ろにぼやけて表示されないようにするには、ぼやけた背景を描画している間にムービークリップをvisible=falseに設定する必要があります。

+0

さて、それはすべてがぼやけるでしょうが、あなたはコンテナの一部にマスキングすることができませんでした。背景の*部分*をぼかすには、別のビットマップサーフェスにコピーする必要があります。 – Aaron

+0

はい、問題です。コンテナ内のすべてがぼやけてしまいます。 OPは、ステージの一部をどのようにぼかしているかを尋ねています。これを行う方法はありません。回避策は、コピー、トリミング、およびぼかしです。ビジュアルにコピーする一般的に信頼できる方法は、ビットマップに描画することだけです。 – Aaron

+0

すばらしい編集、+1。 – null

関連する問題