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

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

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

Регистрация: Dec 2008
Адрес: Севастополь
Сообщений: 112
Отправить сообщение для cdc7600 с помощью ICQ
По умолчанию не подгружается XML

на сцене 7 экземпляров клипов, вложенных в один (для удобства скрола)
пытаюсь загрузить в каждый картинку, но трассируется, что адрес не определён, не подскажите в чём проблема?
Код AS1/AS2:
function loadXML(loaded) {
	if (loaded) {
		xmlNode = this.firstChild;
		image = [];
		description = [];
		total = xmlNode.childNodes.length;
		for (i=0; i<total; i++) {
			image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
			description[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
		}
 
	} else {
		content = "file not loaded!";
	}
}
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("1.xml");
 
dsk.dsk1.loadMovie(image[0], 1);
dsk.dsk2.loadMovie(image[1], 1);
dsk.dsk3.loadMovie(image[2], 1);
dsk.dsk4.loadMovie(image[3], 1);
dsk.dsk5.loadMovie(image[4], 1);
dsk.dsk6.loadMovie(image[5], 1);
dsk.dsk7.loadMovie(image[6], 1);
хмл
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<images>
<pic>
<image>img/1.jpg</image>
<caption>dsk1</caption>
</pic>
<pic>
<image>img/2.jpg</image>
<caption>dsk2</caption>
</pic>
<pic>
<image>img/3.jpg</image>
<caption>dsk3</caption>
</pic>
<pic>
<image>img/4.jpg</image>
<caption>dsk4</caption>
</pic>
<pic>
<image>img/5.jpg</image>
<caption>dsk5</caption>
</pic>
</images>
__________________
cdc7600.livejournal.com

Старый 14.01.2009, 15:13
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 2  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
Выполнение ActionScript-кода является асинхронным, а Вы пишете код, считая его синхронным. Строки
Цитата:
xmlData.load("1.xml");
dsk.dsk1.loadMovie(image[0], 1);
выполнятся сразу друг за другом, поэтому пути неопределенные и получаются.
Загружайте картинки после того, как удостоверились, что xml загружен.

P. S. Вместо loadMovie давно рекомендуется использовать MovieClipLoader, дающий больший контроль над процессом загрузки.
__________________
4am is time to rock


Последний раз редактировалось DarkLight; 14.01.2009 в 15:15.
Старый 14.01.2009, 16:01
cdc7600 вне форума Посмотреть профиль Отправить личное сообщение для cdc7600 Найти все сообщения от cdc7600
  № 3  
Ответить с цитированием
cdc7600
 
Аватар для cdc7600

Регистрация: Dec 2008
Адрес: Севастополь
Сообщений: 112
Отправить сообщение для cdc7600 с помощью ICQ
добавила такую проверку, но всё равно не помогает (
а с классом MovieClipLoader, весьма сложно получится
Код AS1/AS2:
dsk.dsk1.onEnterFrame = function() {
 
filesize = dsk.dsk1.getBytesTotal();
loaded = dsk.dsk1.getBytesLoaded();
if (loaded == filesize) {
dsk.dsk1.loadMovie(image[0], 1);
 
}
}
__________________
cdc7600.livejournal.com

Старый 14.01.2009, 16:09
amexdesign вне форума Посмотреть профиль Отправить личное сообщение для amexdesign Посетить домашнюю страницу amexdesign Найти все сообщения от amexdesign
  № 4  
Ответить с цитированием
amexdesign

Регистрация: Jan 2009
Адрес: Германия, Bochum
Сообщений: 169
Отправить сообщение для amexdesign с помощью Skype™
если уж далее с loadMovie, то вот так:
Код AS1/AS2:
function loadXML(loaded) {
	if (loaded) {
		xmlNode = this.firstChild;
		image = [];
		description = [];
		total = xmlNode.childNodes.length;
		for (i=0; i<total; i++) {
			image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
			description[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
                        dsk.dsk1.loadMovie(image[0], 1);
                        dsk.dsk2.loadMovie(image[1], 1);
                        dsk.dsk3.loadMovie(image[2], 1);
                        dsk.dsk4.loadMovie(image[3], 1);
                        dsk.dsk5.loadMovie(image[4], 1);
dsk.dsk6.loadMovie(image[5], 1);
dsk.dsk7.loadMovie(image[6], 1);
		}
 
	} else {
		content = "file not loaded!";
	}
}
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("1.xml");
но DarkLight совершенно прав насчёт MovieClipLoader, и ничего сложного

Добавлено через 3 минуты
небольшая поправочка:
Код AS1/AS2:
function loadXML(loaded) {
	if (loaded) {
		xmlNode = this.firstChild;
		image = [];
		description = [];
		total = xmlNode.childNodes.length;
		for (i=0; i<total; i++) {
			image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
			description[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
		}
                dsk.dsk1.loadMovie(image[0], 1);
                dsk.dsk2.loadMovie(image[1], 1);
                dsk.dsk3.loadMovie(image[2], 1);
                dsk.dsk4.loadMovie(image[3], 1);
                dsk.dsk5.loadMovie(image[4], 1);
                dsk.dsk6.loadMovie(image[5], 1);
                dsk.dsk7.loadMovie(image[6], 1);
 
	} else {
		content = "file not loaded!";
	}
}
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("1.xml");

Старый 14.01.2009, 16:15
cdc7600 вне форума Посмотреть профиль Отправить личное сообщение для cdc7600 Найти все сообщения от cdc7600
  № 5  
Ответить с цитированием
cdc7600
 
Аватар для cdc7600

Регистрация: Dec 2008
Адрес: Севастополь
Сообщений: 112
Отправить сообщение для cdc7600 с помощью ICQ
спасибо большое) посмотрю ёщё раз MovieClipLoader, может разберусь)
__________________
cdc7600.livejournal.com

Создать новую тему Ответ Часовой пояс GMT +4, время: 01:23.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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