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

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

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

Регистрация: Sep 2009
Сообщений: 25
По умолчанию Динамический доступ к свойствам с именами задаными по маске, как?

Доброго времени суток...
Странные дела творятся
Имеется код

Код AS3:
var req1:URLRequest = new URLRequest("./photo/5.jpg");
var req2:URLRequest = new URLRequest("./photo/2.jpg");
 
var loader1:Loader = new Loader();
 
 
loader1.alpha=0;
 
var photoButtons:Array = [Frame_01.photo1,Frame_01.photo2,Frame_01.photo3,
						  Frame_01.photo4,Frame_01.photo5,Frame_01.photo6,
						  Frame_01.photo7,
						  Frame_01.photo8,Frame_01.photo9,Frame_01.photo10];
 
for(var i:uint=0; i< photoButtons.length; i++)
{
 
	Frame_01.photo[i].addEventListener(MouseEvent.CLICK, photo1Click);
 
 
	function photo1Click(e:MouseEvent):void
	{
 
		loader1.load(req[i]);
	}
 
}
по задумке при нажатии на элемент массива должен запускаться загрузчик
цепляя пременную req с соответствующим нажатому элементу номером на конце, но увы AS3 к сожалению лишь изругивается на эту строчку мол: 1120: Access of undefined property req.

Как думаете где загвоздка? Я так думаю что неправильно присваиваю недостающий номер в req в строке
Код AS3:
loader1.load(req[i]);
Надеюсь подскажете как его присвоить правильно

... Спасибо за внимание! ...


Последний раз редактировалось wvxvw; 14.09.2009 в 01:33.
Старый 13.09.2009, 21:30
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Мама дорогая... а зачем вы слушателей в цикле плодите? вам 1 слушатель всего нужен... ну а дальше уже и все остальное...
Кроме того, давайте темам названия раскрывающие суть проблемы, иначе такие темы будут закрываться.
__________________
Hell is the possibility of sanity

Старый 13.09.2009, 21:59
Mazai вне форума Посмотреть профиль Отправить личное сообщение для Mazai Найти все сообщения от Mazai
  № 3  
Ответить с цитированием
Mazai

Регистрация: Sep 2009
Сообщений: 25
Чтож за название извиняюсь, исправлюсь

Немного исправил код, но вопросов стало от этого только больше
Вот исправленный фрагмент:
Код AS3:
var photoButtons:Array = [Frame_01.photo1,Frame_01.photo2,Frame_01.photo3,
						  Frame_01.photo4,Frame_01.photo5,Frame_01.photo6,
						  Frame_01.photo7,
						  Frame_01.photo8,Frame_01.photo9,Frame_01.photo10];
 
stage.addEventListener(MouseEvent.CLICK, photo2Click);
 
function photo2Click(e:MouseEvent):void
	{
		var currentNumber:uint;
		trace(event.target.name);
		trace(photoButtons.indexOf(event.target));
		currentNumber = photoButtons.indexOf(event.target);
		loader1.load(req[currentNumber]);
 
	}
и как результат ничего не работает ни одна строка в функции не прокатывает жалуется на
1120: Access of undefined property event.

Хотя пред глазами туториал где буква в букву именно так и определяется индекс мувиклипа в массиве и его имя... А сам пока что непойму что ему не нравится

Добавлено через 32 минуты
Ладно выкиньте из головы все что тут написано выше ...
Пожалуйста подскажите как с помощью целочисленной переменной изменить имя вызываемого URL а(переменная req) в короткой строке
Код AS3:
loader1.load(req);
ведь не такой уж сложный вопрос я полагаю...


Последний раз редактировалось Mazai; 13.09.2009 в 22:34.
Старый 13.09.2009, 22:36
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 4  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
функция принимает e:MouseEvent,
так с какого же спрашиваем с event

Старый 13.09.2009, 22:47
Mazai вне форума Посмотреть профиль Отправить личное сообщение для Mazai Найти все сообщения от Mazai
  № 5  
Ответить с цитированием
Mazai

Регистрация: Sep 2009
Сообщений: 25
Цитата:
Сообщение от silin Посмотреть сообщение
функция принимает e:MouseEvent,
так с какого же спрашиваем с event
упс ... не учел Большое спасибо за поправку, а все же по основному вопросу не подскажите?

Старый 13.09.2009, 23:10
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 6  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
а в чем вопрос, собственно
индекс кликнутого объекта в photoButtons ты знаешь
положи урлы в аналогичный массив и бери нужный по этому индексу

Старый 13.09.2009, 23:20
SamFR вне форума Посмотреть профиль Отправить личное сообщение для SamFR Посетить домашнюю страницу SamFR Найти все сообщения от SamFR
  № 7  
Ответить с цитированием
SamFR

Регистрация: Mar 2008
Адрес: Ростов-на-Дону
Сообщений: 354
В смысле изменить?
Если в url просто подставить численное значение, то что-то типа loader1.load(new URLReuest('http://yoursite.org/photos.php?photo=' + buttonIndex.toString()));
Если же адреса, привязанные к кнопкам, произвольны (например, задаются извне), то тут всё зависит от структуры проги. Можно либо хранить адрес в экземпляре кнопки и тянуть его оттуда, либо завести массив этих адресов и брать оттуда по индексу.

Да, и ещё. Решение currentNumber = photoButtons.indexOf(event.target) очень нехорошее. Операция поиска в массиве занимает сравнительно большое кол-во времени. Хоть в данном случае это и не критично, намного лучше (и легче) будет хранить индекс в самом экземпляре кнопки, наследуя от класса кнопки, который вы используете.

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
ошибку у тебя выдает, потому что свойства req у тебя в классе не существует (что собсвенно в ошибке и указано), у тебя есть два свойства req1 и req2, если ты хочешь обратиться к ним как к req[i], тогда создай массив req, положи туда свои URLRequest
Код AS3:
private var _req:Array = [new URLRequest("./photo/5.jpg"), new URLRequest("./photo/2.jpg")];
trace(req[0]);
trace(req[1]);

Старый 14.09.2009, 12:32
Mazai вне форума Посмотреть профиль Отправить личное сообщение для Mazai Найти все сообщения от Mazai
  № 9  
Ответить с цитированием
Mazai

Регистрация: Sep 2009
Сообщений: 25
Большое спасибо, все получилось!!!

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

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

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


 


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


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