我正在使用适用于 Android 的 AS3/AIR 3.2。 我在将变量数据传递到另一个框架时遇到问题。我读过一些关于此的论坛,但我只是新的,所以我还没有任何想法。 我的框架 1 中有一个输入文本和按钮,用户将在其中输入名称,然后输入的数据将被保存。 (我使用SharedObject)但是所有输入的数据都会出现在第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:无法访问空对象引用的属性或方法。我认为这是因为我将数据传递到框架中是错误的。 尝试:我尝试在同一帧上显示输出,但没有遇到任何错误。
最佳答案
您的 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
关于java - Flash AS3 将我的 var 数据传递到另一个框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27324517/