2012-01-18 45 views
0

我需要一個靜態函數中的鼠標座標。它不是一個mousevent函數,函數中沒有任何東西傳入。如何將MouseX/Y放入靜態函數中?

// Main class 
MyClass.something(); 

// MyClass 
public static function something():void 
{ 
    // Get Mouse Cordinates 
    // myclassclip.x = mouse cordinates 
} 
+4

你將有一個靜態REF設置爲舞臺這個函數被調用之前,從一些初始化代碼。 Flash Pro中的時間線還是其他內容? – Sophistifunk 2012-01-18 20:32:41

+0

作爲參數傳遞它可能?公共靜態函數的東西(__ x:Number,__ y:Number):void – 2012-01-18 22:32:16

回答

1
package 
{ 
    import flash.display.Sprite; 
    import flash.display.Stage; 
    import flash.geom.Point; 

    public class MyClass extends Sprite 
    { 
     private static var _instance:MyClass; 

     public function MyClass() 
     { 
      super(); 
     } 

     public static function getInstance():MyClass 
     { 
      if (!_instance) 
       _instance = new MyClass(); 

      return _instance; 
     } 

     public static function testMouse():Point 
     { 
      var myStage:Stage = _instance.stage; 
      var point:Point = new Point(myStage.mouseX, myStage.mouseY); 

      return point; 
     } 
    } 
} 

在主類:

// Somewhere in the Main class 
addChild(MyClass.getInstance()); 

// In other place in the Main class 
MyClass.testMouse(); 
+0

因此,本質上使用一個靜態變量來獲取階段引用,工作:) – 2012-01-19 14:34:50