Форум 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=112580)

alastor2004 02.06.2008 11:19

Загрузка изображений по очереди
 
Вложений: 1
Доброго времени суток.
Пытаюсь сделать так, чтобы картинки по очереди грузились.
проблема в том, что когда я после загрузки первого изображения вызываю функцию displayGallery, следующие картинки не грузятся.
Подскажите пожайлуста, что я делаю не так?
Код:

var gallery_xml:XML = new XML ();
gallery_xml.ignoreWhite = true;
gallery_xml.onLoad = function ()
{
        var images:Array = this.firstChild.childNodes;
        var gallery_array:Array = new Array ();
        for (var i = 0; i < images.length; i++)
        {
                gallery_array.push ({src:images[i].firstChild.nodeValue});
        }
        displayGallery (gallery_array);
};
gallery_xml.load ("gallery_tween.xml");
/////////////////////////////////////////////////////////////
var picload = 0;
function displayGallery (gallery_array:Array)
{
        var galleryLength:Number = gallery_array.length;
        var container:MovieClip = this.createEmptyMovieClip ("image" + picload + "_mc", picload);
        mcLoader_mcl.loadClip (gallery_array[picload].src, container);
        container._x = 20;
        container._y = 20;
}
var mcLoader_mcl:MovieClipLoader = new MovieClipLoader ();
var mclListener:Object = new Object ();
mcLoader_mcl.addListener (mclListener);
mclListener.onLoadProgress = function (target_mc:MovieClip, numBytesLoaded:Number, numBytesTotal:Number)
{
        var numPercentLoaded:Number = Math.ceil (numBytesLoaded / numBytesTotal * 100);
        trace ("onLoadProgress: " + target_mc + " is " + numPercentLoaded + "% loaded");
};
mclListener.onLoadInit = function ()
{
        if (picload < 3)
        {
                picload++;
                displayGallery (gallery_array);
        }
};


qazwsx 02.06.2008 11:39

Наверно потому что gallery_array приватная переменная функции gallery_xml.onLoad.
Т.е ее можно увидить только внутри функции gallery_xml.onLoad.

alastor2004 02.06.2008 11:57

qazwsx, спасибо.
Вынес определеение gallery_array в основной код, все работает.

Alex_beginner 02.06.2008 12:11

Почему приватная?

Код:

function displayGallery (gallery_array:Array)
{
....}


qazwsx 02.06.2008 12:16

Потому что она описана внутри gallery_xml.onLoad

Alex_beginner 02.06.2008 12:21

Че то я не совсем понимаю. Массив gallery_array передается в качестве параметра функции displayGallery. Вы хотите сказать, что она там невидна.?!

А вот здесь, массив действительно невиден

Код:

mclListener.onLoadInit = function ()
{
        if (picload < 3)
        {
                picload++;
                displayGallery (gallery_array);
        }
};


qazwsx 02.06.2008 12:28

Она только там и видна... Ты читать то умееш?
Для наглядности я писал

Код:

displayGallery{
    gallery_array
}


Alex_beginner 02.06.2008 13:30

Цитата:

Наверно потому что gallery_array приватная переменная функции gallery_xml.onLoad.
Т.е ее можно увидить только внутри функции gallery_xml.onLoad.
Че т я тут невижу
Код:

displayGallery{
    gallery_array
}

Впрочем, это неважно - проблема уже разрешена.

qazwsx 02.06.2008 13:39

Ай ты меня запутал
Код:

gallery_xml.onLoad = function ()
{
        var images:Array = this.firstChild.childNodes;
        var gallery_array:Array = new Array ();

Вот это ты видиш? Ты понимаеш что gallery_array видин только в gallerey_xml.onLoad? Если gallery_array передается в качестве параметра функции то это аргумент но это не значит что сделав в displayGallery
Код:

trace(gallery_array)
ты ее увидиш

Alex_beginner 02.06.2008 13:56

Цитата:

Если gallery_array передается в качестве параметра функции то это аргумент но это не значит что сделав в displayGallery
Код:

trace(gallery_array)
ты ее увидиш

Отвечаю:

Код:

function displayGallery(gallery_array:Array):Void
{
        trace(gallery_array);
}
var gallery_array:Array =[1,4,5,6];
displayGallery(gallery_array);

trace успешно вывел содержимое массива.

А то что касается области видимости gallery_array Вы правы - gallery_array виден только в gallerey_xml.onLoad. Но с этим никто неспорил, просто функция displayGallery входит в область видимости gallery_xml.onLoad.


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

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