我正在参加一个篮球项目。我有一个问题,如果我的所有组件都在主时间轴中,我的所有代码都会很好。
但是,只要我将文本字段转换为影片剪辑,以便我可以设置动画并应用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 ();
}
答案 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
始终使用英语进行所有编程。请勿将其他语言混合使用。如果您的代码出现问题,阅读代码会减少并减少可以帮助您的人数。