2012-04-11 82 views
0

我正在使用Flash CS4,AS2。在AS2中,阻止點擊外部SWF

我有第一個SWF,接口,它通過attachMovie加載外部SWF,頁面。頁面本身包含可點擊的按鈕。我想要做的是啓用和禁用頁面上的按鈕,而不更改頁面的代碼。我只能更改界面的內容。

我一直在使用一個攔截嘗試,用影片剪輯:

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

然而,這隻會阻止在界面中點擊和外部網頁似乎仍然獲得鼠標事件。

有沒有辦法啓用和禁用頁面獲得點擊?我不想停止它的執行(沒有什麼停止())。

謝謝。

回答

0

如何在特定深度(通過MovieClipLoader的loadClip)和頂部的「阻擋器」透明MovieClip(getNextHighestDepth())上使用空白按下/釋放處理程序來加載內容,如果它是_visible屬性,不需要 ?

這裏有一個基本的例子:

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事件。 – 2012-04-12 12:13:11

+0

如果你在_level1上有SWF,這意味着你已經通過loadMovie()或loadMovieNum()加載了它,這與我建議的MovieClipLoader選項不同,後者在_level0加載內容,所以你可以放置在頂部阻滯劑)。嘗試類似上面的代碼片段。 MovieClipLoader更加靈活,並且onLoadInit/onLoadComplete事件從長遠來看將會很有用。另外請注意,AS2是區分大小寫的:'onrelease'與'onRelease'不一樣# – 2012-04-13 08:43:38

+0

@BahamutDragons解決問題的任何喜悅? – 2012-04-17 19:28:33