|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Sep 2009
Сообщений: 25
|
Динамический доступ к свойствам с именами задаными по маске, как?
Доброго времени суток...
Странные дела творятся Имеется код 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 в строке Надеюсь подскажете как его присвоить правильно ... Спасибо за внимание! ... Последний раз редактировалось wvxvw; 14.09.2009 в 01:33. |
|
|||||
Modus ponens
|
Мама дорогая... а зачем вы слушателей в цикле плодите? вам 1 слушатель всего нужен... ну а дальше уже и все остальное...
Кроме того, давайте темам названия раскрывающие суть проблемы, иначе такие темы будут закрываться.
__________________
Hell is the possibility of sanity |
|
|||||
Регистрация: Sep 2009
Сообщений: 25
|
Чтож за название извиняюсь, исправлюсь
Немного исправил код, но вопросов стало от этого только больше Вот исправленный фрагмент: 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) в короткой строке ведь не такой уж сложный вопрос я полагаю... Последний раз редактировалось Mazai; 13.09.2009 в 22:34. |
|
|||||
Регистрация: Sep 2009
Сообщений: 25
|
упс ... не учел Большое спасибо за поправку, а все же по основному вопросу не подскажите?
|
|
|||||
Регистрация: Mar 2008
Адрес: Ростов-на-Дону
Сообщений: 354
|
В смысле изменить?
Если в url просто подставить численное значение, то что-то типа loader1.load(new URLReuest('http://yoursite.org/photos.php?photo=' + buttonIndex.toString())); Если же адреса, привязанные к кнопкам, произвольны (например, задаются извне), то тут всё зависит от структуры проги. Можно либо хранить адрес в экземпляре кнопки и тянуть его оттуда, либо завести массив этих адресов и брать оттуда по индексу. Да, и ещё. Решение currentNumber = photoButtons.indexOf(event.target) очень нехорошее. Операция поиска в массиве занимает сравнительно большое кол-во времени. Хоть в данном случае это и не критично, намного лучше (и легче) будет хранить индекс в самом экземпляре кнопки, наследуя от класса кнопки, который вы используете. |
|
|||||
ошибку у тебя выдает, потому что свойства req у тебя в классе не существует (что собсвенно в ошибке и указано), у тебя есть два свойства req1 и req2, если ты хочешь обратиться к ним как к req[i], тогда создай массив req, положи туда свои URLRequest
|
|
|||||
Регистрация: Sep 2009
Сообщений: 25
|
Большое спасибо, все получилось!!!
|
Часовой пояс GMT +4, время: 09:43. |
|
« Предыдущая тема | Следующая тема » |
|
|