2014-10-01 4 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 в файле класса очков. – Morsus

+0

Im получение этой ошибки: свойство Property не найдено на Main и нет значения по умолчанию. – Morsus

+0

Ваш комментарий меняет все =). Классы не являются частью какого-либо другого класса. Таким образом, вы можете получить доступ к своей собственности прямо из любого места. Я обновлю ответ. – Crabar

Смежные вопросы