2013-10-17 23 views
0

嗨,大家好我正在嘗試更改導入爲文件的變量。任何人都可以幫助我指出。如何更改導入的動作腳本中的私人變量

這是externalfile.as

private function SetNewPosition() 
    { 
     this.newX = this.GetRandomXPosition(); 
     this.newY = this.GetRandomYPosition(); 

     this.totalDistance = this.GetDistance(); 

     var time:Number = this.totalDistance/this.speed; 

     speedX = (this.newX - this.x)/time; 
     speedY = (this.newY - this.y)/time; 
    } 
原代碼

我試圖到下一頁末和newY從Main.as做出改變分享如何我可以解決此感謝!

+0

不直接從'Main.as'中創建getter和setter, externalfile.as' – Cherniv

回答

1

我想,newX和newY變量在.as文件中是私有的。

要更改另一個。作爲一個變量,你必須遵循以下兩種方法之一:

第一:

更改您的變量的修飾符(私人公共)

二:

定義變量的屬性get/set,因此變量保持私有狀態,並且可以管理由另一個.as文件發送的結果。例如,如果你的newX不能爲負數,並且在你的Main.as中你試圖把一個小於零的值,那麼在你的set屬性中,你可以決定將它的值設爲零,或者應用一個絕對值,等等。

0

你可能想問自己爲什麼你需要Main來訪問newX和newY變量。如果Main重置external.as實例的位置,則可以在external.as中添加一個'reset'方法,這會保留newX和newY封裝。目的是試圖保留任何關於外部的程序編碼。如果涉及external.as的操作可以在類內部「私有」運行,那就是應該添加代碼的地方。但是,如果Main.as絕對需要訪問,爲newX和newY添加setter和getter方法,例如...

public function set newX(value:Number):void { 
    this.newX = value; 
} 

public function get newX():Number { 
    return this.newX 
} 
相關問題