я целое число не +1 в первый раз - PullRequest
0 голосов
/ 31 марта 2010

У меня есть галерея, в которую он будет загружать изображение после загрузки предыдущего изображения, поэтому каждый раз, когда 'i' будет +1, чтобы он мог перейти к следующему изображению. Этот код отлично работает с моими другими файлами, но я не знаю, почему он не работает для текущего файла.

Обычно, если я отслеживаю 'i', правильным будет

0,1,2,3,4,5,6... etc

добавление до предела, но в этом файле его 'i' повторяет 1-е число дважды, только оно продолжает добавлять

0,0,1,2,3,4,5,6...etc

Код полностью совпадает с другим файлом, который я использую, но я не знаю, почему он здесь не работает. Код, похоже, не имеет никаких проблем. В любом случае, я могу обойти эту ситуацию?

private var i:uint=0;

private function loadItem():void {

        if (i<myXMLList.length()) {
            loadedPic=myXMLList[i].thumbnails;

            galleryLoader = new Loader();
            galleryLoader.load(new URLRequest(loadedPic));
            galleryLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,picLoaded);
        } else {
            adjustImage();
        }
    }

    private function picLoaded(event:Event):void {
        var bmp=new Bitmap(event.target.content.bitmapData);
        bmp.smoothing=true;
        bmpArray.push(bmp);
        imagesArray[i].addChild(bmp);

        i++;
        loadItem();
    }

Ответы [ 2 ]

1 голос
/ 31 марта 2010

Этот код выглядит хорошо, действительно очень трудно сказать, что может быть причиной этого. Лучший совет, который я могу вам дать, - это установить некоторые контрольные точки; например, установите один в точке, где вы добавляете прослушиватель событий в объект galleryLoader, а затем запускаете отладчик Flash. Вы запускаете его, выбрав «Отладка»> «Отладка фильма».

Отладчик остановится на этой строке, и вы сможете заглянуть в окно Переменные , чтобы увидеть вашу переменную i при построчном выполнении кода. Чтобы пройти, нажмите кнопку step in внутри окна Debug Console . Я вставил изображение ниже, показывающее конкретные окна отладчика (которые вы не увидите в Flash в любое другое время):

альтернативный текст http://rookery9.aviary.com.s3.amazonaws.com/3518000/3518019_1ab3_625x625.jpg

Я думаю, что делая это (если вы еще не пробовали, то есть), вы должны довольно быстро увидеть, что происходит не так. Надеюсь, это поможет в любом случае.

Debu

0 голосов
/ 01 апреля 2010

Я наконец выяснил, в чем проблема.

public function grid():void {
        addEventListener(Event.ADDED_TO_STAGE, add2Stage);
    }

    private function add2Stage(event:Event):void {
        myLoader=new URLLoader();
        myLoader.load(new URLRequest(galleryXML));
        myLoader.addEventListener(Event.COMPLETE,processXML);
    }

Это потому, что я использую добавление функций на сцену. После удаления функции add2stage все в порядке. Но почему это будет влиять и запускать функцию дважды при первом? Я просто добавляю его на сцену, чтобы получить ширину сцены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...