2011-02-03 2 views
0

У меня есть класс, состоящий из вложенного массива с именем twoDArray.cant reference array class

public class TestArray 
    { 

    public function TestArray() { 

    var twoDArray:Array = new Array(new Array("one","two"), new Array("three", "four")); 
    } 

    } 

У меня есть другой класс, который пытается сделать переменную типа TestArray.

var OrbArray:TestArray = new TestArray(); 

Я думал, что сможет ссылаться OrbArray, например, с помощью трассировки (OrbArray [0] [0]); давая мне результат, который я ищу «одного». Когда я пытаюсь это сделать, я получаю ReferenceError: Ошибка # 1069: Свойство 0 не найдено на com.orbclasses.TestArray, и значение по умолчанию отсутствует. Помогите оценить.

ответ

0

В вашем TestArray классе:

public class TestArray 
{ 
    public var twoDArray:Array = null; 

    public function TestArray() 
    { 
    twoDArray = new Array(new Array("one", "two"), new Array("three", "four")); 
    } 
} 

Примечание: twoDArray общедоступно.

Теперь, когда вы хотите получить доступ к нему:

var testArray:TestArray = new TestArray(); 
trace("output:", testArray.twoDArray[0][0]); 

т.е. вы пытаетесь получить доступ к свойству twoDArray который принадлежит testArray.

Если вы хотите сделать testArray[0][0] по какой-либо причине, вы тоже можете это сделать, но для этого вам нужно будет ознакомиться с классом flash.utils.Proxy.

1
public dynamic class TestArray extends Array 
{ 

    public function TestArray() 
    { 
    push(new Array("one", "two"), new Array("three", "four")); 
    } 
}