1

我刚开始使用闪光灯,所以这可能是一件简单的事情,所以请耐心等待。

我正在做一个项目,如果我有一张地图,您可以单击地图上的地点并显示信息。我可以设法将每个 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;      
    }

任何帮助将不胜感激,谢谢。

如果你想知道是的,它是权力的游戏的地图。

4

2 回答 2

0

作为第一个措施,删除“open_info_string”周围的引号,并将该字符串中的大写 S 更改为普通的“s”,因为 Actionscript 区分大小写。

var open_info = stage.getChildByName(open_info_string);

然后,如果它不能立即工作,trace(open_info_string);请在尝试访问影片剪辑之前插入 a,以了解它是否被正确裁剪。

于 2012-09-13T14:48:41.867 回答
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");
    }


    });
}
于 2012-09-13T15:26:11.363 回答