Flex 使彈出的視窗使用Canvas可以拖拽

2021-06-27 00:36:42 字數 2150 閱讀 5711

一般來講,flex中彈出視窗可用titlewindow和panel來控制,直接即可執行拖拽動作。而有時我們希望彈出的視窗是自定義的canvas,並且也使canvas可以拖拽,那麼該如何做呢?方法就是給canvas加拖拽監聽,參見如下**:

父頁://彈出視窗,alertwindow為乙個彈出的canvas

varmywin:alertwindow = alertwindow(popupmanager.createpopup(this, alertwindow,true));

popupmanager.centerpopup(mywin);

alertwindow.mxml:

<?xml version="1.0" encoding="utf-8"?>

importmx.managers.popupmanager; 

importmx.controls.alert;

importflash.events.mouseevent;

importmx.containers.canvas;

importmx.managers.popupmanager;

importflash.display.displayobject;

importflash.events.event;

private vardownxy:point=newpoint();

private varupxy:point=newpoint();

public functiondragclick():void

public functionmouseeventfunc(evt:mouseevent):void

} ]]>

但此時問題又來了,拖動窗體任何乙個地方,窗體都被拖動了;假如我想通過滑鼠選中窗體中的某些文字,這時是無法選中的。解決方法是:不要將監聽監聽到整個窗體上,而應該在canvas加乙個頭,拖動窗體頭時才移動窗體。**如下:

alertwindow.mxml:

<?xml version="1.0" encoding="utf-8"?>

importmx.managers.popupmanager; 

importmx.controls.alert;

importflash.events.mouseevent;

importmx.containers.canvas;

importmx.managers.popupmanager;

importflash.display.displayobject;

importflash.events.event;

private vardownxy:point=newpoint();

private varupxy:point=newpoint(); 

public functiondragclick():void

public functionmouseeventfunc(evt:mouseevent):void

} ]]>

試試,這時僅僅拖動labtitle區域才可以拖動。

FLEX建立彈出視窗 PopUpManager類

flex建立彈出視窗,非alert彈框。popupmanager.createpopup parent,class,modal initobj,outsideevents 引數 parent 對彈出視窗所基於的視窗的引用。class 對要建立的物件的類的引用。modal 乙個布林值,它指示該視窗是 ...

PopupWindow彈出視窗的使用

1.主布局檔案activity popup window.xml relativelayout xmlns android xmlns tools android layout width match parent android layout height match parent android...

彈出子視窗的屬性

屬性如下 window.open 彈出新視窗的命令 querysjybh.aspx 彈出新視窗的檔名 newwindow 彈出視窗的名字 不是檔名 可用空 代替 height 100 視窗高度 top 0 視窗距離螢幕上方的畫素值 left 0 視窗距離螢幕左側的畫素值 no 是否顯示工具欄,yes...