如何在Flash中保存前一帧中的数据

时间:2014-03-09 12:13:19

标签: actionscript-3

我有一些名为one,two,three,four,five的影片剪辑出现在addChild的舞台上。我在舞台上还有4个可编辑的文本字段,名为theText1,theText2,theText3和theText4,用户必须在每个字段中写入数字4,1,5,2。如果他们写错了,他们会在下一帧发送,他们会收到一些反馈,然后回到当前的框架中来纠正他们的答案。问题是当他们回来时都会“重置”。之前添加的电影剪辑和之前写的数字必须在舞台上。我怎样才能做到这一点? (我需要一些简单的东西,因为我是flash和as3的新手)。

1 个答案:

答案 0 :(得分:0)

因为MovieClip不存储帧状态。 您应该在返回到框架后存储值并恢复它们。

//Add these 2 helper functions in your frame with Quiz UI

function restoreValues():void{
    if(this.storedValues != null){
        //Restore data
        theText1.text = this.storedValues.txt1;           
    }
}

function storeValues():void{
    //Save as much data as you want
    this.storedValues = {
        txt1 : theText1.text
    };
}

当您转到另一帧时,请在更改帧之前立即调用storeValues并将所有必要数据存储在简单对象中。

checkQuizButton.addEventListener(MouseEvent.CLICK, onCheck);

function onCheck(e: MouseEvent):void{
    storeValues();
    nextFrame();
}

在带有测验ui组件的框架中,在初始化所有ui组件之后,请致电restoreValues();不要忘记根据需要更改功能。