PDA

Просмотр полной версии : помогите разобраться! тему не знаю как назвать! но вопрос интересный!!


motor4ik
18.08.2005, 11:39
Вот гружу данные из XML

var fotoXml = new XML();
fotoXml.ignoreWhite = true;
fotoXml.load('fotos.xml');
fotoXml.onLoad = function() {
f1 = fotoXml.childNodes[0];
for (var i = 0; i<f1.childNodes.length; i++) {
f2 = f1.childNodes[i];
massPath[i] = f2.attributes.patch;
massComment[i] = f2.attributes.comment;
massFotoN[i] = f2.attributes.number;
}
loadFotos();
};


все срабатывает отлично, вызывается функция loadFotos();



function loadFotos() {

if (massPath.length-_root.iLoad-_root.page*6+1>0) {
var a:String="pic"+_root.iLoad+"_mc";
trace(a+"---1");
_root[a]._visible=true;
_root["btnFoto_"+_root.iLoad]._visible = true;
_root[a].image_mc.loadMovie("fotoGrup1/"+massPath[Number(massPath.length-_root.iLoad-_root.page*6)].toString()+"/000.jpg");

_root.onEnterFrame = function() {
trace(a+"---2");
_root[a].loadPanel_mc.procent_txt.text = Math.round(_root[a].image_mc.getBytesLoaded()/_root[a].image_mc.getBytesTotal()*100)+"%";
_root[a].loadPanel_mc.loader_mc._width=Math.round(_root[a].image_mc.getBytesLoaded()/_root[a].image_mc.getBytesTotal()*100);

if (_root[a].image_mc.getBytesLoaded()/_root[a].image_mc.getBytesTotal()==1) {
trace(a+"---3");
_root[a].loadPanel_mc._visible=false;
_root.iLoad++;
if (_root.iLoad!=7){
return loadFotos();
}
delete _root.onEnterFrame;


}
};
}
}



и вот что показывает trace()

pic1_mc---1
pic1_mc---2
pic1_mc---3
pic2_mc---1
pic2_mc---2
pic2_mc---2
pic2_mc---2
pic2_mc---2
......

т.е. получается что он проскакивает первый раз If, почему? имено когда из onLoad вызываешь, если вызвать просто, все нормально, не проскакивает!

magnit
18.08.2005, 13:22
стратегический совет: яв таких случаях начинаю упрощать код и смотрю значения переменных. гдето несостыковка по значениям. имхо

motor4ik
18.08.2005, 14:56
все стыковка! какой то технический момент! нужен совет специалиста!

motor4ik
18.08.2005, 16:36
ну хоть что-нить напишите? или код читать некайф?

Speckle
18.08.2005, 16:50
используй дебагер, все подобдые глюки отлавливаю именно так

motor4ik
18.08.2005, 17:15
у меня какой то дебагер глюкавый! мож я не так с ним обращаюсь, он почему то нифига не показывает ни переменные ни их значения! :( просто пошагово выполняется и все :(

Speckle
18.08.2005, 17:37
у меня какой то дебагер глюкавый! мож я не так с ним обращаюсь, он почему то нифига не показывает ни переменные ни их значения! :( просто пошагово выполняется и все :(
ну там переменные показываются, только если ты в функции находишься, вкладка variables, ну и на нужном объекте нужно щелкнуть, а вне функций можно просматривать свойства сех объектов. Может разберись получше, точно глюк найдешь.

motor4ik
19.08.2005, 11:27
Короче, ошибку я ненашел, пришлось сделать так:


var fotoXml = new XML();
fotoXml.ignoreWhite = true;
fotoXml.load('fotos.xml');
fotoXml.onLoad = function() {
f1 = fotoXml.childNodes[0];
for (var i = 0; i<f1.childNodes.length; i++) {
f2 = f1.childNodes[i];
massPath[i] = f2.attributes.patch;
massComment[i] = f2.attributes.comment;
massFotoN[i] = f2.attributes.number;
}
_root.flag=true;};



_root.onEnterFrame=function():Void{
if (_root.flag){

delete _root.onEnterFrame;
_root.loadFotos();
}
};


и все блин заработало!! НЕ ЗНАЮ почему!!!