Flash AS3将我的var数据传递给另一个帧

时间:2014-12-05 20:55:34

标签: java android actionscript-3 flash

我正在使用AS3 / AIR 3.2 for Android。 我在将可变数据传递到另一帧时遇到了麻烦。我读了一些关于这个的论坛,但我只是新的,所以我还没有任何想法。 我的框架1中有一个输入文本和按钮,用户将输入一个名称,然后输入的数据将被保存。 (我使用SharedObject)但输入的所有数据都将出现在第2帧。 虽然我的第2帧是动态文本,但所有数据都会出现。 这是我的第1帧的代码

import flash.net.SharedObject;
var myName:String;
myResult.text = "";
var mySO:SharedObject = SharedObject.getLocal("test");
if (mySO1.data.myName != null){
    myResult.text = mySO1.data.myName;
}
else {
    myResult.text = "No Name";
}

submit_btn.addEventListener(MouseEvent.CLICK, gotomyNextFrame);
function gotomyNextFrame(event:MouseEvent):void
{
    nextFrame();
    myName = myInputName.text;
    trace(myName);
    myResult.text = myName;
    mySO.data.myResult = myInputName.text;
    mySO.flush();
    trace(mySO.data.myResult);
}

错误:错误#1009:无法访问空对象引用的属性或方法。我认为这是因为我将数据传递到帧中是错误的。 尝试:我尝试在同一帧上显示输出,但没有遇到任何错误。

1 个答案:

答案 0 :(得分:1)

您的SharedObject var是mySO而不是mySO1,并且要在帧之间共享数据,您可以使用如下变量:

第1帧:

...

var shared_data:String = txt_input.text

nextFrame()

...

第2帧:

// get shared_data and use it as you like

another_input.text = shared_data

shared_object.data.current_name = shared_data

...

修改:

/* frame 01 */

// shared_data should be declared here to be a global var not inside a function
var shared_data:String      

submit_btn.addEventListener(MouseEvent.CLICK, gotomyNextFrame)
function gotomyNextFrame(event:MouseEvent):void { 

    // here you should just assign a value to shared_data var
    shared_data = yourName.text     

    nextFrame() 

} 

/* frame 2 */

stop()

import flash.net.SharedObject

// if you redefine shared_data var here you will lost it's value and you will get a null value
// var shared_data:String       

var mySO:SharedObject = SharedObject.getLocal("test1")

myResult.text = shared_data

// here your SharedObject object is named mySO and not SharedObject
//SharedObject.data.mySO = shared_data  

mySO.data.yourName = shared_data