Flex 以不同的座標系統跟蹤滑鼠位置

2021-08-25 13:31:52 字數 1291 閱讀 7085

問題

我想跟蹤使用者滑鼠位置,可以是相對于父容器或相對於容器中其他子元件。

解決辦法

使用stage 和mouseevent 類的本地位置屬性以及所有容器都繼承自uicomponent 的mou***和mousey 屬性。

討論

mouseevent 類有四個屬性可用於確定滑鼠位置。localx 和localy 屬性提供與丟擲mouse 事件相關的元件位置,而stagex 和stagey 提供與stage 相關的位置。

下面的例子,如果滑鼠移動到linkbutton 元件上,localx 和localy 屬性將反應出滑鼠在linkbutton 元件上的位置。如果滑鼠沒有在linkbutton 上,這兩個屬性就是指滑鼠在vbox上的位置:

code view:

mousemove="tracemouseposition(event)">

要檢測某個元件上的滑鼠位置(無論滑鼠是否在其之上),使用displayobject 的mou*** 和mousey 位置,它將返回相對於容器或元件的0,0座標的位置。最後,container 類定義了contentmou*** 和contentmousey 位置,描述滑鼠相對於整個容器內容的位置。下面的例子返回與兩個被新增到hbox 的panel 元件相關的滑鼠位置,而不是與hbox 左上角相關:

code view:

mousemove="trace(this.contentmou***+' : '+this.contentmousey);

height="300"">

因為hbox 兩個子元件的和為812畫素,當你滾動滑鼠到hbox 右邊時,你會發現x 值已經超出hbox 的設定值。容器定義了異惡contentpane 屬性,它是容納新增進來的所有子元件的私有的displayobject。如果子元件的高或寬超出容器自身設定的高或寬,那超出部分將被隱藏。而 contentmou*** 和contentmousey 屬性就是測量滑鼠在保護內容displayobject 上的位置。下面是完整**:

code view:

height="500" paddingtop="10" paddingleft="10" verticalgap="15"

mousemove="tracemouseposition(event)">

private function

tracemouseposition(event:mouseevent):void

]]>

當滑鼠移到vbox 元件時函式將被呼叫,輸出mou*** 和mousey 值。

ObjectArx不同座標系統的變換

1.點或向量變換 acdbucs2ecs 將點從ucs座標系 變換到 ocs ecs 座標系 acdbecs2ucs acdbucs2wcs 將點從ucs座標系 變換到 wcs座標系 acdbwcs2ucs acdbecs2wcs 將點從e座標系 變換到 wcs座標系 acdbwcs2ecs 獲取滑...

64位與32位作業系統的不同

乙個電腦處理資料是有規定的格式的。32位的電腦存放資料的形式是對每個資料用32個二進位制位元組來存放。64位的意思就是用64位個二進位制位元組來存放。64位作業系統的資料寬度為64位,64位指令集可以執行64位資料指令,也就是說處理器一次可提取64位資料 只要兩個指令,一次提取8個位元組的資料 比3...

Linux作業系統下以不同顏色命名的檔案型別

藍色檔案 目錄 白色檔案 一般性檔案,如文字檔案,配置檔案,原始碼檔案等 淺藍色檔案 鏈結檔案,主要是使用ln命令建立的檔案 綠色檔案 可執行檔案,可執行的程式 紅色檔案 壓縮檔案或者包檔案 linux下用字元表示的檔案型別 普通檔案 d 目錄檔案 l 鏈結檔案 b 塊裝置檔案 c 字元裝置檔案 p...