Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.06.2008, 11:19
alastor2004 вне форума Посмотреть профиль Отправить личное сообщение для alastor2004 Найти все сообщения от alastor2004
  № 1  
Ответить с цитированием
alastor2004

Регистрация: Jun 2008
Сообщений: 2
По умолчанию Загрузка изображений по очереди

Доброго времени суток.
Пытаюсь сделать так, чтобы картинки по очереди грузились.
проблема в том, что когда я после загрузки первого изображения вызываю функцию 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);
	}
};
Вложения
Тип файла: rar galery.rar (5.5 Кб, 53 просмотров)

Старый 02.06.2008, 11:39
qazwsx вне форума Посмотреть профиль Найти все сообщения от qazwsx
  № 2  
Ответить с цитированием
qazwsx
Banned
[+5 15.02.09]
[++5 15.02.09]

Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
Наверно потому что gallery_array приватная переменная функции gallery_xml.onLoad.
Т.е ее можно увидить только внутри функции gallery_xml.onLoad.

Старый 02.06.2008, 11:57
alastor2004 вне форума Посмотреть профиль Отправить личное сообщение для alastor2004 Найти все сообщения от alastor2004
  № 3  
Ответить с цитированием
alastor2004

Регистрация: Jun 2008
Сообщений: 2
qazwsx, спасибо.
Вынес определеение gallery_array в основной код, все работает.


Последний раз редактировалось alastor2004; 02.06.2008 в 12:08.
Старый 02.06.2008, 12:11
Alex_beginner вне форума Посмотреть профиль Отправить личное сообщение для Alex_beginner Найти все сообщения от Alex_beginner
  № 4  
Ответить с цитированием
Alex_beginner
 
Аватар для Alex_beginner

Регистрация: May 2008
Сообщений: 476
Почему приватная?

Код:
function displayGallery (gallery_array:Array)
{
....}

Старый 02.06.2008, 12:16
qazwsx вне форума Посмотреть профиль Найти все сообщения от qazwsx
  № 5  
Ответить с цитированием
qazwsx
Banned
[+5 15.02.09]
[++5 15.02.09]

Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
Потому что она описана внутри gallery_xml.onLoad

Старый 02.06.2008, 12:21
Alex_beginner вне форума Посмотреть профиль Отправить личное сообщение для Alex_beginner Найти все сообщения от Alex_beginner
  № 6  
Ответить с цитированием
Alex_beginner
 
Аватар для Alex_beginner

Регистрация: May 2008
Сообщений: 476
Че то я не совсем понимаю. Массив gallery_array передается в качестве параметра функции displayGallery. Вы хотите сказать, что она там невидна.?!

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

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

Старый 02.06.2008, 12:28
qazwsx вне форума Посмотреть профиль Найти все сообщения от qazwsx
  № 7  
Ответить с цитированием
qazwsx
Banned
[+5 15.02.09]
[++5 15.02.09]

Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
Она только там и видна... Ты читать то умееш?
Для наглядности я писал

Код:
displayGallery{
    gallery_array
}

Старый 02.06.2008, 13:30
Alex_beginner вне форума Посмотреть профиль Отправить личное сообщение для Alex_beginner Найти все сообщения от Alex_beginner
  № 8  
Ответить с цитированием
Alex_beginner
 
Аватар для Alex_beginner

Регистрация: May 2008
Сообщений: 476
Цитата:
Наверно потому что gallery_array приватная переменная функции gallery_xml.onLoad.
Т.е ее можно увидить только внутри функции gallery_xml.onLoad.
Че т я тут невижу
Код:
displayGallery{
    gallery_array
}
Впрочем, это неважно - проблема уже разрешена.

Старый 02.06.2008, 13:39
qazwsx вне форума Посмотреть профиль Найти все сообщения от qazwsx
  № 9  
Ответить с цитированием
qazwsx
Banned
[+5 15.02.09]
[++5 15.02.09]

Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
Ай ты меня запутал
Код:
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)
ты ее увидиш

Старый 02.06.2008, 13:56
Alex_beginner вне форума Посмотреть профиль Отправить личное сообщение для Alex_beginner Найти все сообщения от Alex_beginner
  № 10  
Ответить с цитированием
Alex_beginner
 
Аватар для Alex_beginner

Регистрация: May 2008
Сообщений: 476
Цитата:
Если 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.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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