代码之家  ›  专栏  ›  技术社区  ›  hitek

AS3动态按钮名称捕获问题

  •  0
  • hitek  · 技术社区  · 16 年前

    我使用下面的代码动态捕获按下的按钮的名称,然后播放相关的气球电影剪辑动画。

    stage.addEventListener(MouseEvent.CLICK, player); 
    
    function player(evt:MouseEvent){
    var nameofballoon = evt.target.name;
     nameofballoon =nameofballoon.substring(nameofballoon.length-1,nameofballoon.length);
    var movie = "balloon"+nameofballoon;
     trace(movie);
    movie.gotoAndPlay("burst");
    
      }
    

    即使事件捕获的剪辑名称是正确的,我仍会收到此错误。

    TypeError: Error #1006: value is not a function.
    at Balloons2_fla::MainTimeline/player()
    

    有什么想法吗?这个代码怎么了?

    2 回复  |  直到 16 年前
        1
  •  1
  •   Zed-K    16 年前

    你变量 movie 被视为字符串。
    您应该尝试如下操作:

    var movie:MovieClip = this["balloon"+nameofballoon];
    movie.gotoAndPlay("burst");
    

    你可能需要更换 this 以你父母的名义 ballonX 电影短片。

        2
  •  0
  •   Amarghosh    16 年前
    var movie = "balloon"+nameofballoon;
    trace(movie);
    movie.gotoAndPlay("burst");
    

    movie 是字符串-没有 gotoAndPlay 方法在 String 类。

    使用

    var movie:MovieClip = this.getChildByName("balloon"+nameofballoon);
    movie.gotoAndPlay("burst");