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

时间:2013-08-16 15:17:24

标签: actionscript-3 flash reset flush dynamic-text

所以我创建了一个程序,它将在动态文本框中加载一些文本,称为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);


    }


}

1 个答案:

答案 0 :(得分: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是唯一需要续订的内容。在更复杂的情况下,您可能需要进行大量重新分配,例如,如果您使用生命和分数制作游戏,请将生命设置为初始数量并将分数设置为零。但是你应该总是找到自己需要重新分配的东西。这只是原则。