2012-04-11 6 views
0

私はFlash CS4、AS2を使用しています。AS2では、外部SWFのブロックをブロックします

私は最初のSWFを持っています。このSWFは、attachMovieを使って外部SWF、ページを読み込みます。ページ自体にはクリック可能なボタンが含まれています。私がしようとしているのは、ページのコードを変更せずに、ページ上のボタンを有効または無効にすることです。インタフェースの内容のみを変更できます。私はブロッカーを使用してみましたが

、とムービークリップ:

onrelease = function() {}; 
onpress = function() {}; 
useHandCursor = false; 

これは、しかし、唯一のインターフェイス内でクリックを防ぎ、外部のページはまだマウスイベントを取得しているようです。

ページのクリックを有効または無効にする方法はありますか?私は実行を止めたくありません(何もstop())。

ありがとうございます。

答えて

0

(MovieClipLoaderのloadClipを使用して)特定の深度にロードされたコンテンツを保持する方法(空のプレスリリースハンドラを使用してgetNextHighestDepth())を 'blocker'透明MovieClipにする方法は、_visibleプロパティがfalse必要ありません ?

var loadedContent:MovieClip = createEmptyMovieClip("loadedContent",getNextHighestDepth()); 
var loader:MovieClipLoader = new MovieClipLoader(); 
loader.loadClip("as2loadee.swf",loadedContent);//loads content on _level0, unlike loadMovieNum 

var blocker:MovieClip = createEmptyMovieClip("blocker",getNextHighestDepth()); 
blocker.beginFill(0,0);//transparent fill 
drawRect(blocker,0,0,100,100);//these values might change 
blocker.endFill(); 
blocker.onPress = function():Void{ 
    trace("nuh-uh!"); 
} 

function drawRect(target:MovieClip,x:Number,y:Number,w:Number,h:Number):Void{ 
    target.lineTo(x ,y ); 
    target.lineTo(x+w,y ); 
    target.lineTo(x+w,y+h); 
    target.lineTo(x ,y+h); 
    target.lineTo(x ,y ); 
} 
+0

私がやったことだし、それは内部のマウスイベントのために動作しますが、_level1 SWFに送信されるイベントをブロックしていないようだ。ここ

は、基本的な例です。 –

+0

_level1にSWFがある場合、loadMovie()またはloadMovieNum()によってロードされたことを意味します。これは、私が提案したMovieClipLoaderオプションと同じではありません。コンテンツは_level0にロードされます。ブロッカー)。上記のスニペットに似たものを試してみてください。 MovieClipLoaderはより柔軟に動作し、onLoadInit/onLoadCompleteイベントは長期的に役立ちます。また、AS2では大文字と小文字が区別されることに注意してください。 'onrelease'は' onRelease'と同じではありません。 –

+0

@BahamutDragons問題を解決する喜び? –

関連する問題