我有一個類,我的文檔類,稱爲SilkRoadTweeter.as 我也有一個名爲User.as 類在我的User類,我需要調用一個方法叫做隨機數() 我已經試過了,如何從當前課程中的其他課程調用方法。 AS3
trace(SilkRoadTweeter(root).nonce());
但我得到的錯誤,
TypeError: Error #1009: Cannot access a property or method of a null object reference.
我有一個類,我的文檔類,稱爲SilkRoadTweeter.as 我也有一個名爲User.as 類在我的User類,我需要調用一個方法叫做隨機數() 我已經試過了,如何從當前課程中的其他課程調用方法。 AS3
trace(SilkRoadTweeter(root).nonce());
但我得到的錯誤,
TypeError: Error #1009: Cannot access a property or method of a null object reference.
在這種情況下, 「根」 可能是零。 嘗試調試它來檢查。
我覺得這很愚蠢,但我實際上並不知道根是什麼。 – 2010-11-04 16:44:18
我正在學習大學的行爲腳本,並且我使用了類似trace的東西(SilkRoadTweeter(root).nonce()); – 2010-11-04 16:45:09
約旦的答案是最適合你的。靜態是要走的路。 – ansiart 2010-11-05 19:59:46
編輯
我其實忘了最重要的一個,你可以派遣en事件!編輯
的 //In the Document class
var user:User = new User();
user.addEventListener("nonce" , nonceEventListener);
//define your listener
private function nonceEventListener(event:Event):void
{
user.result = this.nonce();
}
//In the User class
public function result(value:Number):void
{
//here you deal the generated Number
}
//somewhere in the Class
this.dispatch(new Event("nonce"));
末
你應該通過你SilkRoadTweeter的實例在User類
例如:
//In the Document class
var user:User = new User(this);
//In the User class
var srt:SilkRoadTweeter;
public function User(srt:SilkRoadTweeter)
{
this.srt = srt;
srt.nonce();
}
如果用戶類的實例添加爲一個孩子SilkRoadTweeter類,你也可以 做到這一點
//In the User class
var srt:SilkRoadTweeter;
public function User()
{
addEventListener(Event.ADDED , addedListener);
}
protected function addedListener(event:Event):void
{
srt = this.parent as SilkRoadTweeter;
srt.nonce();
}
嘿,對不起,我不認爲我很清楚。我需要調用nonce()和nonce()在文檔類(SilkRoadTweeter.as)中,但我需要從其他類調用它User.as – 2010-11-04 16:36:51
我即將去嘗試現在。所有的nonce()都會返回一個生成的數字。有沒有辦法只是從用戶調用nonce()並獲取值? – 2010-11-04 16:50:30
是的,用戶對象被添加爲SilkRoadTweeter的子節點 – 2010-11-04 16:51:47
嘗試:
trace(root is SilkRoadTweeter)
我都感覺你需要做的:
trace((root.getChildAt(0) as SilkRoadTweeter).nonce());
trace(root是SilkRoadTweeter);追蹤什麼? – 2010-11-04 23:51:10
你說的隨機數()函數是在SilkRoadTweeter類,你需要從用戶調用它類。您必須具有對SilkRoadTweeter的引用才能調用它。錯誤是說它不知道SilkRoadTweeter是什麼。在我看來,使用root獲得參考很麻煩,應該避免。我建議在創建它時傳遞一個對User類的引用。如果這不是一個選項,只要函數不需要訪問SilkRoadTweeter的非靜態屬性,在SilkRoadTweeter類中靜態函數nonce()就可以解決您的問題。你說它所做的只是返回一個生成的數字,所以我猜測它不需要訪問非靜態屬性。如果你仍然感到困惑,我可以詳細闡述我所說的話。
我將使nonce()成爲一個靜態函數。但是我還有另一個函數,我想在用戶名爲signRequest()的SilkRoadTweeter中調用,它在SilkRoadTweeter類中使用了很多不同的變量。那我該怎麼做呢? – 2010-11-04 23:44:44
如果你要在兩個類之間進行很多函數調用,我建議在創建User類時引用它。在SilkRoadTweeter中創建User類的實例的代碼如下所示:var user:User = new User(this);並且User類的構造函數將除了一個SilkRoadTweeter,您可以將其作爲私有屬性保存並用於進行函數調用。 – Jordan 2010-11-04 23:54:56
你應該添加更多關於你的課程的細節。 – 2010-11-04 16:08:51