После того, как вы создали все значки городов, поместили их на сцену и дали им имена экземпляров, поместите их в массив. Это просто для упрощения управления.
cityIcons.push(state_tx), cityIcons.push(state_ca)
и т. Д.
Теперь нам нужно добавить код, чтобы показать шарик. Вы упомянули и анимацию. Поместите анимацию воздушного шара, растущего в cityTag_mc под вашими текстовыми полями. Дайте ему имя экземпляра, например balloon_mc.
Теперь нам нужно добавить слушателей. Мы зациклим наш массив, поэтому нам нужно записать его только один раз.
//instead of manually adding to listeners to every city icon movielip we can now
//just loop over all the items in the array
for (var i:int = 0; i < cityIcons.length;i++)
{
var mcCity:MovieClip = cityIcons[i] as MovieClip;
myCity.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver)
myCity.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut)
}
function onMouseOut(e:MouseEvent):void
{
cityTag_mc.visible = false;
//TODO any animating of balloon, maybe you could have
//different labels so instead of changing visible change alpha when your tweening
}
function onMouseOver(e:MouseEvent):void
{
//move balloon to where the city icon is
//e.target refers to the object you have added the listener to
cityTag_mc.x = e.target.x; // move the balloons position to the city's position
cityTag_mc.x = e.target.y;
//you may want to add an offset so its not directly overthe top
cityTag_mc.visible = true;
switch(e.target)
{
//testing which city instance icon we rolled over
case:state_tx
cityTag_mc.title_txt.text ="Texas";
cityTag_mc.balloon_mc.play(); //don't worry about this for now
//do remaining stuff
break;
case:state_ca
//same as above
}
}
Вы можете поместить экземпляр воздушного шара с именем cityTag_mc уже на сцене и установить для видимого значения значение false, или вы можете создавать и удалять по мере необходимости. Это просто руководство, не воспринимайте это как 100%, так как это только от моей головы.