我刚刚开始使用闪存,所以这可能是一件简单的事情,所以请耐心等待。
我正在做一个项目,如果我有一张地图,你可以点击地图上的地点,然后会出现信息。我可以设法将每个button_btn链接到每个info_mc但这需要永远,所以我尝试创建一个函数来读取按钮名称并重定向到info_mc本身。但是,当我从name_mc更改为name_info时,名称正在转换为字符串,因此它不会重定向。这是代码。
winterfell_info.visible = false;
map.winterfell_btn.doubleclickEnabled = true;
map.winterfell_btn.mouseChildren = doubleClickEnabled;
map.winterfell_btn.addEventListener(MouseEvent.DOUBLE_CLICK, show_clicked);
function show_clicked(e:MouseEvent):void{
var get_name = e.currentTarget.name;
var open_info_string = get_name.slice(0,-3) + "info";
//I've tried some things here but nothing is working for me.
var open_info = stage.getChildByName(open_info_string);
open_info.visible = true;
}
非常感谢任何帮助,谢谢。
如果你想知道它是权力的游戏地图。
答案 0 :(得分:0)
删除“open_info_string”周围的引号,作为第一个度量,并将该字符串中的大写字母S更改为正常的“s”,因为Actionscript区分大小写。
var open_info = stage.getChildByName(open_info_string);
然后,如果它不能立即生效,请在尝试访问影片剪辑之前插入trace(open_info_string);
,以确定它是否被正确裁剪。
答案 1 :(得分:0)
我做过类似的事情......我没时间调整代码,但如果你看看我在这里做了什么,我相信它会对你有所帮助。我在我的视频播放器上创建了一个带有对象实例名称的数组,然后创建了一个函数,该函数使用switch case语句添加了相应的事件监听器。在我看来,这是最简单的方法。
var buttons:Array = [clicky,pauseBtn,playBtn];
for (var i in buttons)
{
buttons[i].buttonMode = buttons[i].useHandCursor = true;
addEventListner(buttons[i]);
}
function addEventListner(movieClip)
{
movieClip.addEventListener(MouseEvent.CLICK, function(e){
e.stopPropagation();
switch (movieClip.name)
{
case "playBtn" :
youTubeHolder.videoPlayer.playVideo();
videoController.playBtn.visible = false;
videoController.pauseBtn.visible = true;
break;
case "pauseBtn" :
youTubeHolder.videoPlayer.pauseVideo();
videoController.playBtn.visible = true;
videoController.pauseBtn.visible = false;
break;
case "stopBtn" :
youTubeHolder.videoPlayer.seekTo(0);
youTubeHolder.videoPlayer.stopVideo();
break;
default :
trace(movieClip.name+"is not a valid button");
}
});
}