![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Sep 2010
Адрес: Saint-Petersburg
Сообщений: 143
|
Здравствуйте всем! Ещё раз обращаюсь сюда за помощью!
Опять никак не могу найти и понять, как решить свою проблему... ![]() Мне нужно, чтобы при наведении на разные мувиклипы в одно единственное динамическое текстовое поле выводилась разная информация из xml-файла (типа всплывающей подсказки). Два мувиклипа: mcA и mcВ. И еще мувиклип с самим текстовым полем - mсTxt. Наводим на mcA, и в поле выводится "НадписьА". Наводим на mcВ, и в поле выводится "НадписьВ". Ничего не получается... Помогите, пожалуйста, разобраться... ![]() public class Primer extends MovieClip { public function Primer() { mсTxt.visible=false; //мувиклип с текстом mcA.addEventListener(MouseEvent.MOUSE_OVER,over); mcA.addEventListener(MouseEvent.MOUSE_OUT,out); mcB.addEventListener(MouseEvent.MOUSE_OVER,over); mcB.addEventListener(MouseEvent.MOUSE_OUT,out); function over(e:MouseEvent) { mсTxt.visible=true; } function out(e:MouseEvent) { mсTxt.visible=false; } var xmlPath:String="primerXML.xml"; var loader = new URLLoader(); loader.load(new URLRequest(xmlPath)); loader.addEventListener(Event.COMPLETE, xmlLoaded); } private function xmlLoaded(event:Event):void { var xml = new XML(event.target.data); if (mcA.rollOver) { mсTxt.txt1.text = xml.*.text()[1]; //txt1 - это имя текстового поля в мувиклипе mсTxt } if (mcB.rollOver) { mсTxt.txt1.text = xml.*.text()[2]; } } } Последний раз редактировалось Ylik; 15.04.2011 в 00:29. |
|
|||||
|
Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
|
Убери rollOver
![]() В функции over надо проверять условие. Если e.target = mcA, то показать текст A. Если e.target = mcB, то показать текст B.
__________________
Нормально делай — нормально будет! |
|
|||||
|
Регистрация: Sep 2010
Адрес: Saint-Petersburg
Сообщений: 143
|
Тааак... сейчас попробую разобраться... Спасибо большое за подсказку!
Добавлено через 8 минут Что-то я запуталась... function over(e:MouseEvent) { mсTxt.visible=true; if (e.target = mcA) { mсTxt.txt1.text = xml.*.text()[1]; } if (e.target = mcB) { mсTxt.txt1.text = xml.*.text()[2]; } } private function xmlLoaded(event:Event):void { var xml = new XML(event.target.data); mсTxt.txt1.text = xml.*.text()[1]; } ![]() |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Не надо объявлять функции в конструкторе, это очень плохо. Вынесите хендлеры (обработчики) over и out наружу из конструктора в тело Класса, объявите как private function. Не бойтесь, они будут видны всем остальным членам Класса. Запомните на будущее - засовывать функцию внутрь другой функции – нехорошо!))
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
|
__________________
Нормально делай — нормально будет! |
|
|||||
|
Регистрация: Sep 2010
Адрес: Saint-Petersburg
Сообщений: 143
|
Ох... много советов сразу, сейчас попробую понять...
![]() Спасибо, что помогаете! ![]() Добавлено через 6 минут А как сделать "засунь XML данные в переменную"? Помогите, пожалуйста, пока не доходит... ![]() |
|
|||||
|
Регистрация: Sep 2010
Адрес: Saint-Petersburg
Сообщений: 143
|
Сейчас, ещё раз проверю...
|
|
|||||
|
Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
|
Это я глупость сказал. XML уже в переменной
В чём теперь проблема, так работает?
__________________
Нормально делай — нормально будет! |
|
|||||
|
Регистрация: Sep 2010
Адрес: Saint-Petersburg
Сообщений: 143
|
Что-то не пойму ничего...
1120: Access of undefined property xml Добавлено через 6 минут Пока не работает... ![]() |
|
|||||
|
Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
|
Потому что переменная xml объявлена только в функции xmlLoaded.
Надо создать глобальную переменную package { import ... public class Main extends MovieClip { private var xmlVar:XML = new XML(); public function Main() {} } }
__________________
Нормально делай — нормально будет! |
![]() |
![]() |
Часовой пояс GMT +4, время: 07:25. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|