Показать сообщение отдельно
Старый 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;