我是新來的as3。 我正在嘗試使用Timer
類創建一個非常簡單的倒計時。Flash as3 - 使用定時器更新動態文本的Movieclip。沒有更新
- 我有
movieclip
,它有一個dynamic text
元素。 - 的
movieclip
使用包它的代碼 - 的包,如果明顯是從MovieClip類
- 我有一個
timer
,用於更新動態文本字段每秒的。
調試代碼時,我發現計時器工作正常。它更新動態文本字段的值。
但是,由於某種原因,它本身不會更新。我在這裏錯過了什麼?
我是新來的as3。 我正在嘗試使用Timer
類創建一個非常簡單的倒計時。Flash as3 - 使用定時器更新動態文本的Movieclip。沒有更新
movieclip
,它有一個dynamic text
元素。movieclip
使用包它的代碼timer
,用於更新動態文本字段每秒的。調試代碼時,我發現計時器工作正常。它更新動態文本字段的值。
但是,由於某種原因,它本身不會更新。我在這裏錯過了什麼?
如果你的計時器是「工作」(意思是你可以跟蹤它,並看到它打印出的日誌值與預期的一樣),那麼這很可能是你在文本字段中設置字體的方式的問題。
如果您確定文本字段的實例名稱正在被正確調用(追蹤對象以確保Flash知道它,如... trace(myTextField); //(不應該爲null或undefined,前提是你已經將你的文本字段的實例名稱設置爲「myTextField」
如果這一切都正確,那麼它幾乎可以肯定是字體嵌入問題,這是CS4>真的搞錯了。文本字段並選擇一種字體,然後單擊嵌入字體。嵌入字體並給出它自己的名稱(「myArialBold」)後,您需要在可用字體列表中找到* myArialBold(在屬性窗格中,而不是在字體對話框中)並選擇您的嵌入字體。
它沒有任何理性意義,因爲當你在嵌入對話框時,你覺得你已經選擇了字體,但事實上,這就是你將字體嵌入到環境中的地方,它實際上並不需要直到您從所有字體的下拉列表中選擇它(現在它也將朝向頂部,在所有自定義嵌入字體的居住線之上)。
好處是,它現在將在這個項目的持續時間,你可以選擇它的任何文本字段(並不需要再次嵌入)。
不利的一面是,如果您曾經刪除嵌入但忘記更改任何文本字段中的關聯,則Flash每次打開該項目時都會抱怨正在尋找的字體丟失,並且您會撕掉每一個頭發在你的頭上尋找這個文本字段的位置。在一個大型項目中,我看到這導致人們自殺。很傷心。
如果不行,我們需要看到更多的代碼:)的
擰上了狗狗。哈哈哈..但是這是一個人爲的困擾,花了我10個小時才弄清楚,很高興我不是唯一一個:D –
是的......我失去了相似的時間,因爲我偶然發現了這一點,似乎儘快我下載了更新。從來沒有人見過這種字體機制......這是痛苦。 –
沒有比這個基本的測試沒有更給它...其他問題可能與文字做格式化,但就Timer而言,它並沒有超出這個範圍。
如果您是AS3的新手,請嘗試將您的應用程序分解爲更小的區塊,以查明它的碎片位置...
private var textfield:TextField = new TextField();
private var increment:int;
private var timer:Timer = new Timer(1000);
private function init():void
{
addChild(textfield);
timer.addEventListener(TimerEvent.TIMER , updateText);
timer.start();
}
private function updateText(event:TimerEvent):void
{
increment++;
textfield.text = increment.toString();
}
請注意,正如所寫的那樣,您沒有對計時器的引用,所以在某些時候它可能會收集垃圾,導致您的計時器神祕地停止工作。 –
同意...這將做一個快速測試。編輯答案! – PatrickS
請問您可以粘貼一段代碼嗎? – Benny