我正在使用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:无法访问空对象引用的属性或方法。我认为这是因为我将数据传递到帧中是错误的。 尝试:我尝试在同一帧上显示输出,但没有遇到任何错误。
答案 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