localToGlobal

關於localToGlobal的使用

得到這個mouseX和mouseY之後,看看這兩個值是相對於那個對象的x y,然後show的時候,就寫這個對象

var point:Point=localToGlobal(new Point(mouseX,mouseY));

 chatOperateMenu.show(getContentPane(),mouseX,mouseY);


localToGlobal

1.localToGlobal必須是點的父組件去取值:pointParent.localToGlobal(new Point(point.x,point.y));

2.當要確定座標的組件是popUp屬性的,且父級窗口大小可變化,此時要彈出組件隨父級窗口大小變化的情況下,在監聽Resize事件的時候,需要調用重寫過updateDisplayList的方法,而此時的updateDisplayList方法需要延遲獲取width,height屬性,因爲拖動的時候Point有可能獲取的並不是最終座標:
[plain] view plaincopy
  1. private function onResize(event:ResizeEvent):void {  
  2.     setTimeout(function():void {  
  3.         updateDisplayList(width, height);  
  4.     },1000);  
  5. }  


globalToLocal

要得到local組件中的座標,必須由local組件去取值:local.globalToLocal(new Point(globalPoint.x,globalPoint.y));






2 .***********************************************

public function strongClick(e:MouseEvent):void
{
var point:Point = new Point(e.stageX,e.stageY);//取出鼠標位置
var newp:Point = this.globalToLocal(point);//將鼠標位置轉換成內部位置
var newp:Point = this.parent.globalToLocal(point);//將鼠標位置轉換成自己的父親的相對位置
var newp:Point = WindowsManager.stage.globalToLocal(point);//將鼠標位置轉換指定的容器的相對位置

}

3****************把一個A容器裏面的按鈕,轉換到B容器的相對座標*********************************

 a.先求出btn的全局座標

var pos:Point = WindowsManager.mainFrame.bottomBar.localToGlobal(new Point(btn.x, btn.y));

b. 再轉換成B容器的相對座標
var newpos:Point = WindowsManager.alertFloatingPanel.globalToLocal(pos);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章