У меня есть эта карта, которую я создаю во Flash. Вы нажимаете на состояние, затем вы можете нажать на значок, чтобы просмотреть всплывающую подсказку / всплывающую информацию. Я пытался вместо того, чтобы создавать новые функции и прослушиватели событий для каждой иконки, использовать цикл for ... но все идет не так хорошо. Я давно не касался AS, так что терпите меня :) 1001 *
var ToolTipMC = map.toolTip;
ToolTipMC.alpha = 0;
var places:Array = new Array();
places = [ "map.paulsens", "map.plutonic", "map.jundee", "map.wiluna", "map.darlot", "map.lawers", "map.gwaliaDeeps", "map.sunriseDam", "map.marvelLoch" ];
function enableToolTips( event:MouseEvent ):void {
ToolTipMC.x = places[ i ].x + 10;
ToolTipMC.y = places[ i ].y - ( ToolTipMC.height - 9 );
Tweener.addTween( ToolTipMC, { y: ToolTipMC.y + 5, alpha: 1, transition: "easeInOutExpo", time: 0.3 } );
ToolTipMC.toolTipTextField.text = "It worked!";
trace( "Mouse Over" );
}
function disableToolTips( event:MouseEvent ):void {
Tweener.addTween( ToolTipMC, { alpha: 0, transition: "easeInOutExpo", time: 0.3 } );
trace( "Mouse Out" );
}
for( var i:uint = 0; i < places.length; i++ ) {
places[ i ].addEventListener( MouseEvent.MOUSE_OVER, enableToolTips );
places[ i ].addEventListener( MouseEvent.MOUSE_OUT, disableToolTips );
}
Элементы в массиве являются именами экземпляров, и я использую класс (ы) Tweener.
Следующее выдает ошибку вывода
TypeError: Ошибка # 1006: значение не является функцией
и останавливается на
places[ i ].addEventListener( MouseEvent.MOUSE_OVER, enableToolTips );
Итак, из этого я могу сделать вывод, что у него возникают проблемы с анализом значений массива до прослушивателя событий, но это насколько я понял :) Может ли кто-нибудь помочь мне с моей дилеммой?