Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   помогите разобраться! тему не знаю как назвать! но вопрос интересный!! (http://www.flasher.ru/forum/showthread.php?t=68053)

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

Цитата:

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

ну там переменные показываются, только если ты в функции находишься, вкладка 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();
}       
};

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


Часовой пояс GMT +4, время: 00:22.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.