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

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

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

Регистрация: Sep 2010
Адрес: Saint-Petersburg
Сообщений: 143
Question разные данные из xml в одно динамическое поле

Здравствуйте всем! Ещё раз обращаюсь сюда за помощью!
Опять никак не могу найти и понять, как решить свою проблему...

Мне нужно, чтобы при наведении на разные мувиклипы в одно единственное динамическое текстовое поле выводилась разная информация из xml-файла (типа всплывающей подсказки).
Два мувиклипа: mcA и mcВ. И еще мувиклип с самим текстовым полем - mсTxt.
Наводим на mcA, и в поле выводится "НадписьА". Наводим на mcВ, и в поле выводится "НадписьВ".
Ничего не получается... Помогите, пожалуйста, разобраться...

Код AS3:
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];
	}
    }
}
Не пойму, как правильно сделать условие if (mcA.rollOver)...


Последний раз редактировалось Ylik; 15.04.2011 в 00:29.
Старый 15.04.2011, 00:41
tsarapkabel вне форума Посмотреть профиль Отправить личное сообщение для tsarapkabel Найти все сообщения от tsarapkabel
  № 2  
Ответить с цитированием
tsarapkabel
 
Аватар для tsarapkabel

Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
Убери rollOver
В функции over надо проверять условие. Если e.target = mcA, то показать текст A. Если e.target = mcB, то показать текст B.
__________________
Нормально делай — нормально будет!

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

Регистрация: Sep 2010
Адрес: Saint-Petersburg
Сообщений: 143
Тааак... сейчас попробую разобраться... Спасибо большое за подсказку!

Добавлено через 8 минут
Что-то я запуталась...

Код AS3:
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];
	}
Так как-то что-ли?

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Не надо объявлять функции в конструкторе, это очень плохо. Вынесите хендлеры (обработчики) over и out наружу из конструктора в тело Класса, объявите как private function. Не бойтесь, они будут видны всем остальным членам Класса. Запомните на будущее - засовывать функцию внутрь другой функции – нехорошо!))
__________________
Reality.getBounds(this);

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

Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
1 засунь XML данные в переменную.
2 проверяй на over, только
Код AS3:
== //равенство
= //присвоение
__________________
Нормально делай — нормально будет!

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

Регистрация: Sep 2010
Адрес: Saint-Petersburg
Сообщений: 143
Ох... много советов сразу, сейчас попробую понять...
Спасибо, что помогаете!

Добавлено через 6 минут
А как сделать "засунь XML данные в переменную"?
Помогите, пожалуйста, пока не доходит...

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

Регистрация: Sep 2010
Адрес: Saint-Petersburg
Сообщений: 143
Сейчас, ещё раз проверю...

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

Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
Это я глупость сказал. XML уже в переменной
Код AS3:
var xml = new XML(event.target.data);
В чём теперь проблема, так работает?
Код AS3:
if (e.target.name == mcA) {
	mсTxt.txt1.text = xml.*.text()[1];
}
else if (e.target.name == mcB) {
	mсTxt.txt1.text = xml.*.text()[2];
}
__________________
Нормально делай — нормально будет!

Старый 15.04.2011, 01:27
Ylik вне форума Посмотреть профиль Отправить личное сообщение для Ylik Найти все сообщения от Ylik
  № 9  
Ответить с цитированием
Ylik
 
Аватар для Ylik

Регистрация: Sep 2010
Адрес: Saint-Petersburg
Сообщений: 143
Что-то не пойму ничего...
1120: Access of undefined property xml

Добавлено через 6 минут
Пока не работает...

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

Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
Потому что переменная xml объявлена только в функции xmlLoaded.

Надо создать глобальную переменную
Код AS3:
package {
 
	import ...
 
	public class Main extends MovieClip {
 
		private var xmlVar:XML = new XML();
 
		public function Main() {}
	}
}
И уже потом var не писать, а сразу
Код AS3:
xml = new XML(event.target.data);
__________________
Нормально делай — нормально будет!

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

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

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


 


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


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