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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 10.09.2007, 23:34
DeT вне форума Посмотреть профиль Отправить личное сообщение для DeT Посетить домашнюю страницу DeT Найти все сообщения от DeT
  № 1  
Ответить с цитированием
DeT
[+6 07.09.07]

Регистрация: Sep 2007
Сообщений: 14
Отправить сообщение для DeT с помощью ICQ
Tip AS + XML + Loader

проблема с получением ссылки на созданный объект класса Loader

Вот код:
Код:
var matx = 5;
//Кол-во фотографий по вертикали
var maty = 5;
//Ширина превью
var prew = 75;
//Высота превью
var preh = 75;

var g_xml = new XML();
g_xml.ignoreWhite=true;
System.useCodepage = true;

g_xml.onLoad = onLoadXML;
g_xml.load('items.xml');

function onLoadXML(success:Boolean):Void
{
	if(success){
	
/*
Итак, тут будут распологаться описания тегов и их аттрибутов(+ предназначение).
--- <foto name='' href=''> - Главный тег, отвечающий за фотографию. 
name - уникальное имя, href - ссылка
*/
		var firstN:XMLNode = g_xml.firstChild;
		var nCount:Number = firstN.childNodes.length;
		var mcArray:Array = [];
		
		for(var i=0;i<nCount and i<(matx*maty);i++)
		{
			if(firstN.childNodes[i].nodeName=='foto'){
				_root.createClassObject(mx.controls.Loader, "l"+i, i+1000);
				mcArray.push(_root["l"+i]);
				trace(mcArray[i]);
				//mcArray[i].loadMovie(mcArray[i].loadMovie(firstN.childNodes[i].attributes.href,firstN.childNodes[i].attributes.name) );
			}//if
		} // for
		
	}
}
Единственный глюк в том что нельзя обратится к созданному объекту. помогите кто может
__________________
Flash - newbie :dunno:

Старый 10.09.2007, 23:47
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 2  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
А где вы пытаетесь к нему обратится?

Старый 10.09.2007, 23:54
DeT вне форума Посмотреть профиль Отправить личное сообщение для DeT Посетить домашнюю страницу DeT Найти все сообщения от DeT
  № 3  
Ответить с цитированием
DeT
[+6 07.09.07]

Регистрация: Sep 2007
Сообщений: 14
Отправить сообщение для DeT с помощью ICQ
Код:
mcArray.push(_root["l"+i]);
это интуитивная запись,т.к. не знаю как получить ссылку на сзданный объект,ибо ф-ия не возращает ничего
__________________
Flash - newbie :dunno:

Старый 11.09.2007, 00:08
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 4  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Попробуйте эту строчку
Код:
mcArray.push(_root["l"+i]);
заменить на эту
Код:
mcArray[i] = _root["l"+i]
.

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

Регистрация: Jul 2006
Адрес: Земля>Россия>Вологда
Сообщений: 3,056
Отправить сообщение для CorC с помощью ICQ Отправить сообщение для CorC с помощью MSN Отправить сообщение для CorC с помощью Skype™
Цитата:
Сообщение от DeT
Код:
mcArray.push(_root["l"+i]);
это интуитивная запись,т.к. не знаю как получить ссылку на сзданный объект,ибо ф-ия не возращает ничего
Help:
Returns
A UIObject object that is an instance of the specified class.

c push тоже верно.
Еще меня _root смущает спереди у create
__________________
"We Are The Champions My Friends!" Queen

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

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
CorC, push у него идет в условном операторе, поэтому мувик, теоретически, не всегда будет добавляться в массив, поэтому дальше при обращении mcArray[i], если к примеру хотя-бы в одной итерации, не было добавлено мувика в массив, будет возвращаться undefined.

Старый 11.09.2007, 14:26
DeT вне форума Посмотреть профиль Отправить личное сообщение для DeT Посетить домашнюю страницу DeT Найти все сообщения от DeT
  № 7  
Ответить с цитированием
DeT
[+6 07.09.07]

Регистрация: Sep 2007
Сообщений: 14
Отправить сообщение для DeT с помощью ICQ
2udaff, Кажется нет, вроде как(я не могу в AS утверждать ничего на 100%) пушится в первый незаполненный жэлемент,т.е. в верх.
=> если вы пропускаем то ничего не теряется, а обращение через mcArray[i] = _root["l"+i] Наоборот даст пустые элементы.

Цитата:
HELP:
Usage:
componentInstance.createClassObject(className, instanceName, depth, initObject)
как видите return'a нету.
__________________
Flash - newbie :dunno:

Старый 11.09.2007, 15:50
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 8  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
В этой стоке trace(mcArray[i]) вы обращаетесь к элементу по номеру i, и если, допустим, в массив добавлено лишь 3 элемента (при помощи метода push), а у вас идет пятая итерация, т.е. i == 4, получается, что вы обращаетесь к пятому элементу массива, а их только три.

PS: usage - это использование, а не return, про возвращаемый результат, написано далее, собственно, то, что и написал CorC:
Returns
A UIObject object that is an instance of the specified class.

Старый 11.09.2007, 16:20
DeT вне форума Посмотреть профиль Отправить личное сообщение для DeT Посетить домашнюю страницу DeT Найти все сообщения от DeT
  № 9  
Ответить с цитированием
DeT
[+6 07.09.07]

Регистрация: Sep 2007
Сообщений: 14
Отправить сообщение для DeT с помощью ICQ
я по прежнему не понимаю кое-чего
если все вышенаписанное мной верно(кропе trace'a , но это тоже верно, ибо проверка пока-что всегда выполняется) то мне нужно редактировать св-ва созданного лодера, а конкретно X Y WIDTH и HEIGHT.
не подскажете. ?
trace(_root["l"+i]); не помогает, там выводит андефайнд.
__________________
Flash - newbie :dunno:

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

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
А этот Loader в библиотеке-то есть? Попробуйте:
Код:
mcArray.push(_root.createClassObject(mx.controls.Loader, "l"+i, i+1000));
А потом, вне цикла, потрейсить весь массив.
..или вообще так:
Код:
trace(_root.createClassObject(mx.controls.Loader, "l"+i, i+1000));
И да, useCodePage уберите, а xml сохраните как utf-8

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

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

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


 


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


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