2016-05-27 42 views
-1

影片剪輯我在籃球項目的工作。我有一個問題,如果我所有的組件都在主時間軸上,我所有的代碼都可以很好地工作。更新文本字段成從主時間軸代碼

但只要我轉換文本字段爲影片剪輯,所以我可以動畫和應用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

你有什麼錯誤嗎? – null

+0

TypeError:Error#1009:No se puede acceder a una propiedad o a unmétodode una referencia a un objeto nulo。 /您不能訪問屬性到一個空對象引用的方法。 \t在MethodInfo的-142() \t在flash.utils ::定時器/ _timerDispatch() \t在flash.utils ::定時器/蜱() – epxela

回答

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 

But as soon as I convert the text fields into a movie clip

那是不可能的。從你的代碼看,你實際上想要做的是將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 

始終使用英語爲您的所有節目。不要混入其他語言。如果你的代碼有問題,閱讀你的代碼會變得很痛苦,並減少可以幫助你的人數。

+0

有了這個sugestion你做,沒有更多的編譯錯誤,但我不知道如何以圖形方式處理該文本字段。使用該代碼在Flash中創建模板並將其導出爲swf。謝謝你的幫助。 – epxela

+0

@epxela我認爲你可以將'TextField'添加到你的'MovieClip'中,然後你可以使用'addChild'函數對'MovieClip'的alpha值進行動畫和應用。 – suzuiyue

+0

我即時尋找一種方法來寫入電影剪輯,所以我可以動畫結果我將測試你的建議。 @suzuiyue謝謝。 – epxela