如何在AS3中完全重置加载的动态文本



所以我制作了一个程序,可以在一个名为text_box的动态文本框中加载一些文本。然后我还制作了一个名为reset_btn的按钮。我不知道如何对此进行编码,但我希望用户能够单击按钮,动态text_Box将重置,并再次运行他们的代码(以获取他们的文本)。基本上我想关闭程序,而不是关闭它哈哈。因此,所有的操作和代码只需点击一个按钮即可重新运行。或者一些人可能会称之为"刷新"应用程序。有人能帮我吗?提前感谢!

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);

    }

}

您需要进行正确的重新初始化。首先,您已经将静态代码与函数混淆,将类范围的变量与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是唯一应该续订的东西。在更复杂的情况下,你可能需要大量的重新分配,比如说,如果你制作了一个有生命和分数的游戏,将生命设置为初始值,并将分数设置为零。但你应该自己找到需要重新分配的东西。这只是原则。

最新更新