![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Jul 2008
Сообщений: 35
|
Добрый день. У меня вот такие вопросы. Есть порядка 80 объектов (кнопок) по наведению на которые должен выскакивать тултип. Должен ли я прописывать вызов тултипа внутри каждого объекта или все таки есть какой то другой способ?
Информация внутри тултипа разная. Сам пузырь уже нарисован. Планирую подгружать текст из внешнего файла. Как привязать имя объекта к xml? (я хочу сделать параметр внутри xml нода, в зависимости от значения меняться будет цвет кнопки + весь текст хочу хранить в ноде) Подскажите пожалуйста как все это правильно организовать. |
|
|||||
|
Можно назначить функцию наведения на каждую кнопку циклом. На пример:
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] } } |
|
|||||
|
Регистрация: Jul 2008
Сообщений: 35
|
Цитата:
Вот что у меня: var butTotal:Number = 297; for (var i:Number = 1; i<=butTotal; i++) { clip = new Object('area_'+i); clip.onRollOver = function() { trace('hello'); }; } trace(clip); Цитата:
Добавлено через 6 минут а вот с использование eval заработало. но вот опять же привязка=) var butTotal:Number = 297; for (var i:Number = 1; i<=butTotal; i++) { clip = eval('area_'+i); clip.onRollOver = function() { trace('hello'); }; } Прикрутил отображение тултипов, но все это почему то работает только внутри клипа land_buttons который в свою очередь в клипе map_mc. Все бы хорошо но при увеличении клипа map_mc тултип ползет(отображается далеко не там где указатель мыши) Вот так вот увеличиваю карту on (release) { if (map_mc._xscale<200) { map_mc._xscale = map_mc._xscale+25; map_mc._yscale = map_mc._yscale+25; } } _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; } Добавлено через 7 часов 33 минуты вместо _xmouse поставил _root._xmouse тултипы вроде бы там где надо. теперь буду искать как сделать так что бы заставить их не заходить за края документа. Добавлено через 31 час 28 минут Решил переписать код. Все теперь в первом кадре _root. Id кнопок теперь считываются из xml, трассируется нормально. Массив заполняется, а вот кнопки не реагируют на действия=((( Что делать не пойму, подскажите пожалуйста. Очень нужно. _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; |
|
|||||
|
Регистрация: Jul 2008
Сообщений: 35
|
dimarik Огромное спасибо, работает! Не мог бы объяснить эту строчку кода? Почему именно так нужно писать?
|
|
|||||
|
.
|
Ваш currentButton[i] указывает на какой-то индекс (адрес, String), прочитанный из xml, например, "child1".
В _root.map_mc.land_buttons лежат кнопки, именованные подобными адресами. Чтобы адресоваться к дитю нужно задать адрес _root.map_mc.land_buttons["child1"]. Более подробно в FAQ, в первом вопросе. Вы, вероятно, факу-то не читали. |
|
|||||
|
Регистрация: Jul 2008
Сообщений: 35
|
огромное спасибо! практически все готово! если сильно ленится не буду, то выложу потом готовую карту.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 02:11. |
|
|
« Предыдущая тема | Следующая тема » |
|
|