PDA

Просмотр полной версии : Обращение в рут из функции


true11
06.10.2009, 17:45
При обращении в рут из функции, а именно массив _root.previewAssoc не работает! :(
Почему такое может быть?

function generateTablePreviews(rows, cols) {
phNum = 0; // номера фотографий
mcNum = 0; // номера клипов
for (i=0; i<rows; i++) {
ypos = (90+5)*i+8;
for (j=0; j<cols; j++) {
xpos = (90+5)*j+8;
this.attachMovie("previewsThumb","photo"+mcNum,this.getNextHighestDepth(),{_x:xpos, _y:ypos});
this.attachMovie("loadClip","pre_photo"+mcNum,this.getNextHighestDepth(),{_x:xpos+45, _y:ypos+45});
_root.previewAssoc[mcNum]=1;
trace('mc:'+mcNum+' ph:'+phNum);
this.my_mcl.loadClip('http://'+_root.usrServer+"/photos/small/"+phNum+".jpg",this["photo"+mcNum]);
mcNum++;
if(_root.photos[(phNum+1)]){phNum++;}else{phNum = 0;}
}
}
trace(_root.previewAssoc);
}

woland24
06.10.2009, 17:49
ну например если данная флешка(та в которой массив) вызывается из другой, то рутом будет та из которой вызывается. Если это так то попробуй вместо _root использовать module

Добавлено через 42 секунды
или попробуй использовать относительный путь с помощью _parent

true11
06.10.2009, 17:54
_parent тоже не работает, пробовал. Странно, обычно всегда статичные переменные загружаю в функцию именно так.

module? что это такое и где про это можно почитать? :)
P.S. тут вопрос стоит даже не совсем как сделать, а именно почему не работает.. не понимаю(

Перед вызовом функции объявляю так:
var previewAssoc:Array;

P.S. Разобрался. Проблема была именно в объявлении массива.
Правильно было так:
var previewAssoc = new Array()
Блин... 2 часа времени впустую((

woland24
06.10.2009, 17:57
погугли) А что вообще код делает и какова структура флешки?