Flex + Image +禁用拖动

时间:2010-01-19 13:02:57

标签: flex image drag-and-drop

如何禁用图像的拖放。我试图阻止传播,但这没有帮助。

以下是我编写的代码片段

<mx:Image width="24" height="24" complete="init()" dragStart="disableMove(event)" 
                                    source="{(data.id==null)?'': (data.id.search('\\.') > 0) ? 'assets/icons/teacher.png' : 'assets/icons/student.png'}" 
                                    toolTip="{data.data}" doubleClick="itemDoubleClick(event, data.id)" doubleClickEnabled="true">

                                    <mx:Script>
                                        <![CDATA[
                                            import mx.controls.Alert;
                                            import flash.events.MouseEvent;
                                            import flash.ui.ContextMenu;
                                            import flash.ui.ContextMenuItem;

                                            private var allCurrentItems: Array = new Array();

                                            private function itemDoubleClick(event: Event, id: String): void {
                                                Alert.show("Clicked = "+id);
                                            }

                                            private function init(): void {
                                                var menuLabel:String = "About School\u00A0";
                                                var cm:ContextMenu = new ContextMenu();

                                                cm.hideBuiltInItems();

                                                var item:ContextMenuItem = new ContextMenuItem(menuLabel);

                                                this.addEventListener(MouseEvent.MOUSE_DOWN, showClick);

                                                //add eventlisteners to the menu item and provide functions
                                                cm.customItems.push(item);
                                                //cm.customItems = [item];

                                                this.contextMenu = cm;
                                            }

                                            private function showClick(event:MouseEvent): void {
                                                if (event.buttonDown) {
                                                    Alert.show(String(event.buttonDown));
                                                }
                                            }

                                            private function disableMove(event: MouseEvent): void {
                                                event.stopImmediatePropagation();
                                            }
                                        ]]>
                                    </mx:Script>
                                </mx:Image>

1 个答案:

答案 0 :(得分:1)

我得到了它,而不是在dragStart()上调用disableMove(event),我在mouseDown()上调用了它。它可以工作。