2014-10-01 53 views
-1

我在主类文件所做的这个新功能:AS3找不到属性

check2(1); 
function check2(somenumber:Number){ 
var Somenumber:Number = somenumber; 

trace(Points.tab1_points); // traces actual variable for example "10" 

var test:String = "Points.tab" + Somenumber+ "_points"; 
trace("test"); // traces "Points.tab1_points" 

trace(this["Points.tab" + Somenumber+ "_points"]); //gives error 
} 

'

ReferenceError: Error #1069: Property Points.tab1_points not found on Main and there is no default value. 

    at Main/check2()[...\Main.as:641] 
    at Main/Check()[...\Main.as:388] 

Test Movie terminated. 

我需要跟踪的价值,但通过动态字符串。 任何人都可以帮我吗? 谢谢。

回答

1

您不能访问财产的财产。所以你需要做下一步:

var points:Object = this["Points"]; 
var tabPoints:Object = points["tab" + Somenumber+ "_points"]; 
trace(tabPoints); 

而不是类型“对象”,你可以使用适当的类型。

更新:

如果Points是一个类名,那么你可以只写下一页:

trace(Points["tab" + Somenumber+ "_points"]); 
+0

它不是working..I忘了提,点是一个类名,因为变量tab1_points是静态的var在Points类文件中。 – Morsus 2014-10-01 09:00:24

+0

我得到这个错误:属性能力没有找到主,没有默认值。 – Morsus 2014-10-01 09:18:45

+0

你的评论改变了全部=)。班级积分不是任何其他班级的一部分。所以,你可以直接从任何地方访问你的财产。我会更新答案。 – Crabar 2014-10-01 09:38:42