Flash 添加嵌套movieclip并将动态文本设置为3
我有一张美国地图,上面有一些城市的图标(大约12个)。当用户将鼠标悬停在其中一个图标上时,图标上方会弹出一个带有两个动态文本字段的movieclip 每个城市的图标movieclip都是以其所在州命名的:Flash 添加嵌套movieclip并将动态文本设置为3,flash,actionscript-3,movieclip,Flash,Actionscript 3,Movieclip,我有一张美国地图,上面有一些城市的图标(大约12个)。当用户将鼠标悬停在其中一个图标上时,图标上方会弹出一个带有两个动态文本字段的movieclip 每个城市的图标movieclip都是以其所在州命名的:state\u(缩写)ie:state\u TX 弹出文本气球的名称为:cityTag\u mc 里面有两个动态文本字段:title\u txt&subTitle\u txt 逻辑是当用户将鼠标悬停在state\u TX上时添加cityTag\u mc,并输入该状态的标题和子标题 我的主要问题是
state\u(缩写)
ie:state\u TX
弹出文本气球的名称为:cityTag\u mc
里面有两个动态文本字段:title\u txt
&subTitle\u txt
逻辑是当用户将鼠标悬停在state\u TX
上时添加cityTag\u mc
,并输入该状态的标题和子标题
我的主要问题是如何将文本输入到字段中(并设置气球动画)。我不知道从哪里开始。我只想为动作脚本中的每个状态设置文本。我从哪里开始?最佳做法是什么?一旦创建了所有城市图标并将其放置在舞台上,并为其指定实例名称,然后将其放入阵列中。这只是为了让事情更容易管理
citycons.push(state\u tx)、citycons.push(state\u ca)
等
现在我们需要添加代码以使气球显示出来。您还提到了设置动画。将在cityTag_mc中生长的气球动画放置在文本字段下方。给它一个实例名,例如balloon\u 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
}
}
//现在,我们不需要手动将监听器添加到每个城市图标movielip中
//只需循环数组中的所有项
对于(变量i:int=0;i
您可以将一个名为cityTag_mc的气球实例放置在舞台上,并将其设置为visible为false,或者根据需要创建和删除。这只是一个指南,不要把它当成100%,因为这只是我的想法。我就是做不到。我花了好几个小时在这上面,却找不到任何地方。我甚至不知道从哪里开始。谢谢你的帮助,但这是没有希望的。好吧,也许暂时不要担心任何动画,试试基本的。创建一个代表城市的MovieClip图标。将其中12个放在舞台上,并给他们实例名称。现在制作一个气球的MovieClip,里面有两个动态(非静态)文本字段,确保它们和气球都有实例名。在第一帧的ActionScript中创建一个数组,并如上所述将图标推入数组。然后使用我上面的代码替换任何实例名称以匹配您的实例名称。暂时忽略play()的内容。