2013-08-16 26 views
0

因此,我製作了一個程序,該程序將在一個名爲text_Box的動態文本框中加載一些文本。然後我也做了一個名爲reset_btn的按鈕。我不確定如何編碼,但我希望用戶能夠點擊按鈕,動態text_Box將重置,並再次運行代碼(以獲取文本)。基本上我想關閉程序,而沒有真正關閉它哈哈。因此,所有的操作和代碼只需點擊一下按鈕即可重新運行。或者有些人可能稱之爲「沖洗」應用程序。有人可以幫助我嗎?先謝謝了!如何在AS3中完全重置加載的動態文本

var ldr:URLLoader = new URLLoader(); 
ldr.addEventListener(HTTPStatusEvent.HTTP_STATUS, ldrStatus); 

var url:String = "http://google.com"; 
var limit:int = 10; 

var time_start:Number; 
var time_stop:Number; 
var times:int; 

ping(); 

function ping():void 
{ 
    trace("pinging", url); 

    times = 0; 
    doThePing(); 
} 

function doThePing():void 
{ 
    time_start = getTimer(); 
    ldr.load(new URLRequest(url)); 
} 

function ldrStatus(evt:*):void 
{ 
    if(evt.status == 200) 
    { 
     time_stop = getTimer(); 
     textBox.text = String(time_stop - time_start); 


    } 


} 
+0

也許你可以向我們展示一些你的代碼。基本上,要重置一個'TextField'的值,你只需給它的'text'屬性賦一個新值:'myTextField.text ='''。但聽起來你可能想重置的不僅僅是文本字段的值,這就是爲什麼我建議你顯示你正在使用的代碼。 –

+0

當然,會做:) – sdksmkfnajnf

+0

那麼,你有一個程序啓動時執行的代碼序列。通過創建'new Main()'來模擬啓動,並用新的'Main'替換當前的'Main',或者開發一個'reinit()'方法來清理並重新運行主對象的初始化以及文本字段。 – Vesper

回答

1

您需要進行正確的重新初始化。首先,你已經將靜態代碼與函數以及具有pre-init的類變量混爲一談,因此在不初始化的情況下聲明這些變量,並使用下面的代碼創建一個newPing()函數,並在需要時調用它。

function newPing():void { 
    ldr=new URLLoader(); 
    ldr.addEventListener(HTTPStatusEvent.HTTP_STATUS, ldrStatus); 
    times++; // this will also track how many pings were there 
    doThePing(); 
} 

你已經完成了變量初始化的其餘部分,它們不需要重新初始化。您的ldr是唯一應該續訂的內容。在更復雜的情況下,你可能需要大量的重新分配,比如說如果你用生命和分數來製作遊戲,那麼將生命設置爲初始數量並將分數設置爲零。但是你應該總是找到自己需要重新分配的東西。這只是原則。

+0

好的,但我會如何重新加載ldr? – sdksmkfnajnf

+0

爲什麼你的'doThePing()'函數會這樣做。 – Vesper

+0

我的意思是每次用戶打開應用程序時重新加載它,或者點擊名爲rld_Btn的按鈕。 – sdksmkfnajnf