2013-08-16 1 views
0

Итак, я создал программу, которая будет загружать текст в динамическое текстовое поле, называемое text_Box. Затем я также сделал кнопку с именем reset_btn. Я не уверен, как это кодировать, но я хочу, чтобы пользователь мог нажать кнопку, а динамический text_Box сбрасывается и снова запускает свой код (чтобы получить их текст). В принципе, я хочу закрыть программу, не закрывая ее вообще. Таким образом, все действия и код повторно запускаются одним нажатием кнопки. Или то, что некоторые люди могут назвать, для «Flush» приложения. Может кто-нибудь, пожалуйста, помогите мне в этом? Заранее спасибо!Как полностью сбросить загруженный динамический текст в 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' на новый, либо создайте метод' 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