从主时间轴代码将文本字段更新为影片剪辑

时间:2016-05-27 21:56:16

标签: actionscript-3 flash

我正在参加一个篮球项目。我有一个问题,如果我的所有组件都在主时间轴中,我的所有代码都会很好。

但是,只要我将文本字段转换为影片剪辑,以便我可以设置动画并应用alpha值,就会停止工作。

我做错了什么?我能想到的唯一解决方案是将倒计时的结果写入影片剪辑的文本字段中,但它也不起作用。

这是我的代码。

function onTimer ( ev:TimerEvent ) : void {
timeRemaining--;
if (timeRemaining < 0) {
    timeRemaining = 0;
    loseGame();
}
else 
    showTime.text = formatTimeRemaining ();
    var miReloj:MovieClip;
    var titulo_txt:TextField = new TextField();
    titulo_txt.text = formatTimeRemaining ();
    addChild(miReloj);
    miReloj.addChild(titulo_txt);
    // miReloj.addChild(showTime1.text);
     //miReloj.showTime1.text = formatTimeRemaining ();
}

1 个答案:

答案 0 :(得分:0)

永远不会为miReloj分配值,这就是为什么null

var miReloj:MovieClip;                      // no assignment here
var titulo_txt:TextField = new TextField();
titulo_txt.text = formatTimeRemaining ();
addChild(miReloj);                          // miReloj is still null here
miReloj.addChild(titulo_txt);               // cannot call method on null
  

但是只要我将文本字段转换为影片剪辑

那是不可能的。从您的代码看,您实际想要做的是将TextField对象添加到容器中。没有必要使用MovieClip,只需创建一个Sprite对象:

var container:Sprite = new Sprite();        // create container
var title:TextField = new TextField();
title.text = formatTimeRemaining();
addChild(container);                        // add container
container.addChild(title);                  // add title to container

始终使用英语进行所有编程。请勿将其他语言混合使用。如果您的代码出现问题,阅读代码会减少并减少可以帮助您的人数。