as3动态按钮名称捕获问题

时间:2010-03-19 16:41:40

标签: flash actionscript-3

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

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 个答案:

答案 0 :(得分:1)

您的变量movie被视为字符串 你应该尝试这样的事情:

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

您可能需要将this替换为ballonX MovieClip的父级名称。

答案 1 :(得分:0)

var movie = "balloon"+nameofballoon;
trace(movie);
movie.gotoAndPlay("burst");

movie是一个字符串 - gotoAndPlay类中没有String方法。

使用

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