如果我的主要课程我定义了
var arrItems:Array=[];
并在实用程序类(在不同的文件中)中定义
public class Util
{
public function Util()
{
var choices:Array[] = {
"1 item1 ",
"2 item2 ",
"3 item3 " };
我的主类如何访问Util.choices的元素并将它们分配给arrItems?
在Java中我会做
arrItems[i] = Util.choices[i];
答案 0 :(得分:1)
这是一个范围问题。您已在Util类的构造函数中声明了数组选择,因此只能通过此函数内部的名称引用它。您需要做的第一件事就是将其移至类级别。
public class Util{
//Also note you use [] for arrays, and {} for objects.
public var choices:Array = ["item 1", "item 2", "item 3"];
}
所以,既然选择存在于类级别,我们可以通过创建该类的实例来引用它,就像这样......
//Inside another class somewhere...
var util:Util = new Util();
trace(util.choices[0]); // Outputs "item 1"
但是,根据您的示例,您似乎只需要为整个程序提供此数组的一个实例。一个简单的方法是使用static修饰符,它将变量附加到实际的类(而不是类的实例),你最终得到类似的东西......
public class Util{
public static var choices:Array = ["item 1", "item 2", "item 3"];
}
//Anywhere else in your program
trace(Util.choices[0]); // Outputs "item 1"
答案 1 :(得分:1)
在AS3中相同,不同之处在于您应该将选项声明为静态var,如此
public class Util
{
public static var choices:Array = {'item1' , 'item2' , 'item3'};
}
答案 2 :(得分:0)
我认为你是在哄骗自己来自Java。看看阵列上的AS3指南即可开始。例如Introduction to Arrays in ActionScript 3.0 - republicofcode.com。希望这会让你更好地理解。
您可能还想查看Static vars。
答案 3 :(得分:0)
这取决于你将如何使用选择。选择数组是不变的还是会随着时间而变化?首先让我们假设它是常量,你可以使它成为Util类的静态属性。
public class Util{
public static const choices:Array=["item1", "item2"];
}
现在你可以访问这样的选择:arrItems[i]=Util.choices[i];
public class Util{
private var _choices:Array;
public function Util():void{
choices=["item1", "item2"];
}
public function get choices():Array {
return _choices;
}
}
在主代码中,您可以通过实例化Util类来访问选项。var u:Util=new Util();
arrItems[i]=u.choices[i];