2012-03-06 51 views
0

使用RPG類型的閃光燈,我必須能夠從很多位置控制文本框。造成我麻煩的是庫存。我需要能夠從庫存剪輯(實例名稱「inventory」)中訪問帶有「statusWindow」實例的文本框,因此,當我將鼠標懸停在動畫剪輯中的某個項目上時,它將更改舞臺上的狀態窗口。AS3如何從動畫片段內訪問主時間線上的動畫片段?

在這種情況下,我想將鼠標懸停在主時間軸的inventory.invHealth上以獲取顯示。 itemName和itemProps是包含有關項目信息的字符串。

我試過以下,但它給了我一個「可能未定義」的錯誤。

invHealth.addEventListener(MouseEvent.MOUSE_OVER, itemStats); 

    function itemStats(e:Event):void 
    { 
     root.statusWindow.text = itemName+"\n"+itemProps; 
    } 

我不是在AS3非常擅長,只是還沒有,所以如果你還可以解釋你的代碼,當你將它張貼 - 儘管大多數人通常做anyway-我將非常感激。提前致謝!

回答

0

我建議你將信息數據存儲在類對象中;該對象應該可以通過statusWindow和庫存剪輯訪問。這樣就不需要「閱讀」一個文本框,對於相同的數據你會有不同的看法。例如:

public class GlobalVars 
{ 
    public static var health:Number; 
} 

你當然可以創建一個更加結構化的信息數據,如:

public class Item 
{ 
     public function Item(setname:String) 
     { 
     name=setname; 
     health = 100; 
     quantity = 0; 
     } 

     private var name:String; 
     private var health:Number; 
     private var quantity:Number; 
} 

var inventory:Array = new Array(); 
inventory.push(new Item("hammer")); 
inventory.push(new Item("gun")); 
inventory.push(new Item("sponge")); 
+0

我是否需要做一個外部文件。至於這個? – 2012-03-06 15:36:41

+0

你不需要,但如果你這樣做是件好事。將每個類放在單獨的.as文件中。在初始化方法中創建類的對象。使對象可以通過各種剪輯訪問。 – vulkanino 2012-03-06 15:39:51

+0

聽起來不錯,讓我試試看。 – 2012-03-06 15:49:59

相關問題