有沒有辦法編寫自定義事件,當用戶在該自定義組件實例外單擊時觸發該自定義事件?基本上在主要的Flex應用程序的其他地方。 謝謝。flex中的自定義組件的點擊外部事件
回答
您可以使用FlexMouseEvent.MOUSE_DOWN_OUTSIDE
事件。例如:
myPopup.addEventListener(
FlexMouseEvent.MOUSE_DOWN_OUTSIDE,
function(mouseEvt:FlexMouseEvent):void
{
PopUpManager.removePopUp(myPopup);
}
);
stage.addEventListener(MouseEvent.CLICK, stgMouseListener, false, 0, true);
...
private function stgMouseListener(evt:MouseEvent):void
{
trace("click on stage");
}
private function yourComponentListener(evt:MouseEvent):void
{
trace("do your thing");
evt.stopPropagation();
}
從Senocular得到這個。我認爲這適用於這個主題,至少它對我有用。 jedierikb提出的建議似乎是一樣的,但有點不完整。
防止事件傳播
如果你想阻止事件的進一步傳播,您可以使用stopPropagation()(flash.events.Event.stopPropagation())或stopImmediatePropagation事件偵聽器內,這樣做停止()(flash.events.Event.stopImmediatePropagation())。這些方法是從傳入事件監聽器的Event對象中調用的,並且基本上阻止了事件的發生 - 至少在那之後。
stopPropagation可以防止超出當前範圍的任何對象接收事件,並且這可以在事件的任何階段內。 stopImmediatePropagation執行相同的操作,但也需要額外的步驟來防止接收事件的當前目標中的其他事件發生。因此,在stopPropagation會阻止精靈A的父節點接收事件的情況下,stopImmediatePropagation將阻止精靈A的父節點以及監聽精靈A的任何其他偵聽程序接收事件。
示例:使用stopPropagation和stopImmediatePropagation ActionScript代碼之間切換:
var circle:Sprite = new Sprite();
circle.graphics.beginFill(0x4080A0);
circle.graphics.drawCircle(50, 50, 25);
addChild(circle);
circle.addEventListener(MouseEvent.CLICK, clickCircle1);
circle.addEventListener(MouseEvent.CLICK, clickCircle2);
stage.addEventListener(MouseEvent.CLICK, clickStage);
function clickCircle1(evt:MouseEvent):void {
evt.stopPropagation();
// evt.stopImmediatePropagation();
trace("clickCircle1");
}
function clickCircle2(evt:MouseEvent):void {
trace("clickCircle2");
}
function clickStage(evt:MouseEvent):void {
trace("clickStage");
}
點擊圈,看到了事件是如何停止了與每個方法。 stopPropagation防止從接收到該事件的階段,而stopImmediatePropagation也從識別事件
正常輸出防止clickCircle2
clickCircle1
clickCircle2
clickStage
stopPropagation輸出
clickCircle1
clickCircle2
stopImmediatePropagation輸出
clickCircle1
的Flex/Actionscri PT 3 - 鼠標靠近popupanchor任何地方點擊彈出錨
4.6 SDK外面試試這個..
frmPUA.popUp.addEventListener(FlexMouseEvent.MOUSE_DOWN_OUTSIDE,menuPopOutside,假,0,真正的);
的完整代碼繳費在
- 1. 自定義組件點擊事件
- 2. 如何啓用自定義組件中的點擊事件?
- 3. 爲外部點擊創建dataLayer自定義事件
- 4. Flex中的自定義組件中的冒泡事件
- 5. 收聽flex中的自定義事件
- 6. 在自定義Flex組件中未觸發的事件
- 7. 組合自定義組件上的Flex 3事件傳播?
- 8. Flex內置事件和自定義事件的事件流程
- 9. jquery jtable自定義點擊事件
- 10. 使用事件點擊創建自定義控件點擊
- 11. GWT聽外部自定義JavaScript事件
- 12. 如何在Flex中爲自定義組件編寫事件?
- 13. 自定義組件點擊消息
- 14. 自定義AlertDialog.Builder添加自定義按鈕事件點擊
- 15. 事件自定義事件,從組件
- 16. 如何處理自定義gwt小部件的單擊事件
- 17. Flex自定義組件,事件和範圍
- 18. 事件點擊Android外部對話框?
- 19. Flex 4鼓泡自定義事件
- 20. 自定義Flash/Flex事件對象
- 21. jQuery的JTable中自定義點擊事件操作路由
- 22. ExpandableListView中的自定義視圖不會獲得點擊事件
- 23. 手動點擊事件觸發Flex中
- 24. 在flex中訪問自定義組件文件中的對象
- 25. JavaScript的射擊自定義事件鉻
- 26. * .ui.xml中的自定義組合部件
- 27. Flex 4:檢測RichEditableText外部的點擊
- 28. 在外部點擊時隱藏組件
- 29. Flex動態創建的組件添加到自定義組件
- 30. Flex自定義組件消失
的FlexMouseEvent.MOUSE_DOWN_OUTSIDE如果用PopUpManager中添加組件,而不是如果你做一個手動的addChild(請參見http然而剛剛播出://www.mail -archive.com/[email protected]/msg14875.html,看看我最後一小時的拉毛) – iddqd 2010-03-18 17:04:40