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

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

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

Регистрация: Jul 2008
Сообщений: 35
Attention Много объектов и tooltipы.

Добрый день. У меня вот такие вопросы. Есть порядка 80 объектов (кнопок) по наведению на которые должен выскакивать тултип. Должен ли я прописывать вызов тултипа внутри каждого объекта или все таки есть какой то другой способ?

Информация внутри тултипа разная. Сам пузырь уже нарисован. Планирую подгружать текст из внешнего файла. Как привязать имя объекта к xml? (я хочу сделать параметр внутри xml нода, в зависимости от значения меняться будет цвет кнопки + весь текст хочу хранить в ноде)

Подскажите пожалуйста как все это правильно организовать.

Старый 18.10.2009, 13:55
Art_133 вне форума Посмотреть профиль Отправить личное сообщение для Art_133 Посетить домашнюю страницу Art_133 Найти все сообщения от Art_133
  № 2  
Ответить с цитированием
Art_133
 
Аватар для Art_133

блогер
Регистрация: Feb 2007
Адрес: Москва
Сообщений: 538
Записей в блоге: 2
Отправить сообщение для Art_133 с помощью Skype™
Можно назначить функцию наведения на каждую кнопку циклом. На пример:
Код AS1/AS2:
var butTotal:Number = 80;
for (var i:Number = 1; i <= butTotal; i++) {
var clip['b' + i]
clip.lnk = i
clip.onRollOver = function () {
// Показываем бабл
bibleIt ();
// А тут массив к примеру со ссылками на текст из xml файла (ну там firstChild.сhildNodes...).
bible.text = lnkArray[this.lnk]
}
}
Писал в спешке, возможно ошибся в синтаксе. Думаю суть понятна.

Старый 18.10.2009, 15:46
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 3  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Нужно унаследоваться от MovieClip и добавить необходимую функциональность.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 19.10.2009, 17:12
gerasim13 вне форума Посмотреть профиль Отправить личное сообщение для gerasim13 Найти все сообщения от gerasim13
  № 4  
Ответить с цитированием
gerasim13

Регистрация: Jul 2008
Сообщений: 35
Цитата:
Можно назначить функцию наведения на каждую кнопку циклом. На пример:
Циклом к сожалению не сделать мне кажется=( Каждый следующий шаг затирает значение в переменной. Да и правильно зарегистрировать обьякт мне так и не удалось=(

Вот что у меня:
Код AS1/AS2:
var butTotal:Number = 297;
for (var i:Number = 1; i<=butTotal; i++) {
	clip = new Object('area_'+i);
	clip.onRollOver = function() {
		trace('hello');
	};
}
trace(clip);
Цитата:
Нужно унаследоваться от MovieClip и добавить необходимую функциональность.
Что унаследовать? Подскажите пожалуйста что искать. Немного поподробнее расскажите пожалуйста.

Добавлено через 6 минут
а вот с использование eval заработало. но вот опять же привязка=)
Код AS1/AS2:
var butTotal:Number = 297;
for (var i:Number = 1; i<=butTotal; i++) {
	clip = eval('area_'+i);
	clip.onRollOver = function() {
		trace('hello');
	};
}
Добавлено через 7 часов 29 минут
Прикрутил отображение тултипов, но все это почему то работает только внутри клипа land_buttons который в свою очередь в клипе map_mc. Все бы хорошо но при увеличении клипа map_mc тултип ползет(отображается далеко не там где указатель мыши)

Вот так вот увеличиваю карту
Код AS1/AS2:
on (release) {
	if (map_mc._xscale<200) {
		map_mc._xscale = map_mc._xscale+25;
		map_mc._yscale = map_mc._yscale+25;
	}
}
А вот весь код
Код AS1/AS2:
_root.tooltip._visible = false;
 
var butTotal:Number = 297;
for (var i:Number = 1; i<=butTotal; i++) {
	clip = eval('area_'+i);
	clip.onRollOver = function() {
		trace(this._name);
		tooltipTimer = setInterval(showTooltip, 100, "This is Button 2");
	};
	clip.onRollOut = function () {
		_root.tooltip._visible = false;
		clearInterval(tooltipTimer);
	};
}
 
function showTooltip(tip) {
	_root.tooltip._visible = true;
	_root.tooltip._x = _xmouse;
	_root.tooltip._y = _ymouse;
	_root.tooltip.anumber.text = tip;
}
Подскажите пожалуйста как мне перенести весь код в _root и что бы все работало. пробовал подставлять _root.map_mc.land_buttons.clip вместо clip но не помогает.

Добавлено через 7 часов 33 минуты
вместо _xmouse поставил _root._xmouse
тултипы вроде бы там где надо. теперь буду искать как сделать так что бы заставить их не заходить за края документа.

Добавлено через 31 час 28 минут
Решил переписать код. Все теперь в первом кадре _root. Id кнопок теперь считываются из xml, трассируется нормально. Массив заполняется, а вот кнопки не реагируют на действия=((( Что делать не пойму, подскажите пожалуйста. Очень нужно.

Код AS1/AS2:
_root.tooltip._visible = false;
function ParseXML(success) {
	if (success == true) {
		trace("1");
		if (xmlMap.firstChild.hasChildNodes()) {
			areas = xmlMap.firstChild.childNodes;
			area_number = areas.length;
			trace(area_number);
			var currentButton = new Array();
			for (var i = 0; i<area_number; i++) {
				current_area = areas[i];
				trace(areas[i]);
				buttonPath = _root.map_mc.land_buttons;
				currentButton.push(current_area.attributes.id);
				//currentButton.push(eval('area_'+i));
				buttonPath.currentButton[i].onRollOver = function() {
					trace(this._name);
				};
				trace(currentButton[i]);
			}
		}
	} else {
		trace("2");
	}
}
xmlMap = new XML();
xmlMap.ignoreWhite = true;
xmlMap.load("map.xml");
xmlMap.onLoad = ParseXML;

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Код AS1/AS2:
buttonPath[currentButton[i]].onRollOver = function()....
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 21.10.2009, 11:18
gerasim13 вне форума Посмотреть профиль Отправить личное сообщение для gerasim13 Найти все сообщения от gerasim13
  № 6  
Ответить с цитированием
gerasim13

Регистрация: Jul 2008
Сообщений: 35
dimarik Огромное спасибо, работает! Не мог бы объяснить эту строчку кода? Почему именно так нужно писать?

Старый 21.10.2009, 11:40
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 7  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Ваш currentButton[i] указывает на какой-то индекс (адрес, String), прочитанный из xml, например, "child1".
В _root.map_mc.land_buttons лежат кнопки, именованные подобными адресами.

Чтобы адресоваться к дитю нужно задать адрес _root.map_mc.land_buttons["child1"].

Более подробно в FAQ, в первом вопросе. Вы, вероятно, факу-то не читали.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 21.10.2009, 14:52
gerasim13 вне форума Посмотреть профиль Отправить личное сообщение для gerasim13 Найти все сообщения от gerasim13
  № 8  
Ответить с цитированием
gerasim13

Регистрация: Jul 2008
Сообщений: 35
огромное спасибо! практически все готово! если сильно ленится не буду, то выложу потом готовую карту.

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
ждем до сих пор =)
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

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

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


 


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


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