2011-12-02 42 views
0

我有一個看不見的大按鈕,覆蓋舞臺上的旗幟,它下面我有必須響應鼠標事件的影片剪輯。但我無法通過看不見的按鈕。我只能得到按鈕事件,並且不能與其下面的影片剪輯進行交互。這裏是簡單的代碼:如何使影片剪輯與隱形按鈕響應鼠標事件之上

invisibleBtn.addEventListener(MouseEvent.CLICK, onTopClick); 
bottomMc.addEventListener(MouseEvent.MOUSE_OVER, onBottomOver); 

function onTopClick(e:MouseEvent):void{ 
    trace("top - click"); 
} 

function onBottomOver(e:MouseEvent):void{ 
    trace("bottom - over"); 
} 

我從來沒有得到bottomMc MouseEvent ...任何想法? 謝謝!

+0

搜索的文檔將mouseEnabled和mouseChildren屬性。 – AsTheWormTurns

+0

我想既要支持鼠標 - 所以invisibleBtn.mouseEnabled =假,不會工作,因爲我需要它來接收click事件 – fjckls

回答

0

只有你可以用這個做的是讓invisibleBtn禁用,並把點擊影片剪輯,而不是按鈕事件。

所以,它應該這樣。

invisibleBtn.mouseEnable=false; 
invisibleBtn.mouseChildren =false; 

bottomMc.addEventListener(MouseEvent.CLICK, onTopClick); 
bottomMc.addEventListener(MouseEvent.MOUSE_OVER, onBottomOver); 

function onTopClick(e:MouseEvent):void{ 
    trace("top - click"); 
} 

function onBottomOver(e:MouseEvent):void{ 
    trace("bottom - over"); 
} 

所以,它會採取事件影片剪輯

+0

好,這不是一個真正的選擇,因爲下面有幾個影片剪輯 - 一些有鼠標事件和一些別筆 - 這將意味着我將不得不單擊事件添加到不同的幀中的所有影片剪輯 - 這只是太多了:) – fjckls

+0

它只是簡單的橫幅場景 - 在上面看不見的按鈕和影片剪輯它的下面 - 鼠標事件的一些響應的,有些不是 - 有些只是動畫和背景 - 添加點擊事件,所有的人似乎並沒有以正確的方式...... – fjckls

+1

然後做一兩件事,而不是應用點擊事件到影片剪輯,應用單擊事件要Stage.so,您可以獲得與隱形按鈕相同的功能,而動畫片段也可以獲得MouseEvent。 – sanjay

0

你有一個主按鈕,在點擊打開新頁面,並在同一時間,你希望用戶交互與其他物體發生?重新考慮這種方法。

你有2個解決方案:

1.Show的invisibleBtn只有當沒有更多的用戶交互可用。

2.Or使用此功能:

getObjectsUnderPoint (new Point (stage.mouseX, stage.mouseY)); 

把這個線enterFrame事件句柄,那麼你就西港島線可以讓所有對象的數組,那裏你可以檢查對象的名稱,並決定現在是你是onBottomOveronBottomOut,因爲它總是處於活動狀態的invisibleBtn。

+0

naaah ..多數民衆贊成在這樣一個簡單的東西:),thnks雖然..以及我擺脫了不可見的按鈕,並重新編碼像this.addEventListener(MouseEvent。CLICK,onTopClick);這正是我需要的 - 所有的影片剪輯都可以獲得他們的活動,onTopClick也可以。所以沒有點使用隱形按鈕:) – fjckls

+0

所以它幾乎相同,你會把invisibleB的背景。 :) –

0

建議有該空間中的一個按鈕...並點擊時保持跟蹤,如果影片剪輯是可見的...如果是那麼你需要的任何操作,如果影片剪輯被點擊以及

0

檢查如果bottomMc是在前面

或試試這個:

this.setChildIndex(bottomMc,this.numChildren-1); 
相關問題