Actionscript 3 引用共享对象AS3
我试图引用一个共享对象(一个保存数据的对象),但每当我尝试引用时,就会发生崩溃 此代码工作正常:Actionscript 3 引用共享对象AS3,actionscript-3,flash,actionscript,Actionscript 3,Flash,Actionscript,我试图引用一个共享对象(一个保存数据的对象),但每当我尝试引用时,就会发生崩溃 此代码工作正常: var var1:Object = { value:1 }; var varRef:Object = var1; if(var1.value == 1) { varRef.value = 50; } trace(varRef.value); // outputs 50; trace(var1.value); // outputs 50; 但当我尝试使用共享对象时,它不起作用 impor
var var1:Object = { value:1 };
var varRef:Object = var1;
if(var1.value == 1) {
varRef.value = 50;
}
trace(varRef.value); // outputs 50;
trace(var1.value); // outputs 50;
但当我尝试使用共享对象时,它不起作用
import flash.net.SharedObject;
var iapso:SharedObject = SharedObject.getLocal("purchases");
var varRef:Object = iapso.data.testing;
varRef = 90
trace ("The shared value is " + iapso.data.testing);
trace ("This should mirror it" + varRef);
如果你能解决这个问题,请发布一个固定版本
谢谢。您必须来自可以取消指针引用的编程背景
var bar:Object = { data:1 };
var foo:Object = bar.data;
trace(foo); //"1"
bar.data = 2;
trace(foo); //"1"
在这种情况下,varRef
不是varRef=&iapso
。设置其值不会更改iapso.data.testing的值
最初,您将varRef
设置为指向iapso.data.testing
的指针:
var varRef:Object = iapso.data.testing;
然后,立即将其更改为常量值对象文字90
:
varRef = 90;
这不会将testing
的值设置为90-这会更改varRef
的值
您可以将varRef
设置为iapso.data
,然后设置testing
,如下所示:
var varRef:Object = iapso.data;
varRef.testing = 90;
然后,将产生以下预期结果:
trace(iapso.data.testing); // 90
trace(varRef.testing); // 90
您必须来自可以取消引用指针的编程背景
var bar:Object = { data:1 };
var foo:Object = bar.data;
trace(foo); //"1"
bar.data = 2;
trace(foo); //"1"
在这种情况下,varRef
不是varRef=&iapso
。设置其值不会更改iapso.data.testing的值
最初,您将varRef
设置为指向iapso.data.testing
的指针:
var varRef:Object = iapso.data.testing;
然后,立即将其更改为常量值对象文字90
:
varRef = 90;
这不会将testing
的值设置为90-这会更改varRef
的值
您可以将varRef
设置为iapso.data
,然后设置testing
,如下所示:
var varRef:Object = iapso.data;
varRef.testing = 90;
然后,将产生以下预期结果:
trace(iapso.data.testing); // 90
trace(varRef.testing); // 90
设置varRef将不会更新iapso.data中的值-数字是复制的,而不是引用的
var bar:Object = { data:1 };
var foo:Object = bar.data;
trace(foo); //"1"
bar.data = 2;
trace(foo); //"1"
如果确实要使用引用,请使用数据
,例如:
import flash.net.SharedObject;
var iapso:SharedObject = SharedObject.getLocal("purchases");
var varRef:Object = iapso.data;
varRef.testing = 90
trace ("The shared value is " + iapso.data.testing);
trace ("This should mirror it" + varRef.testing);
设置varRef将不会更新iapso.data中的值-数字是复制的,而不是引用的
var bar:Object = { data:1 };
var foo:Object = bar.data;
trace(foo); //"1"
bar.data = 2;
trace(foo); //"1"
如果确实要使用引用,请使用数据
,例如:
import flash.net.SharedObject;
var iapso:SharedObject = SharedObject.getLocal("purchases");
var varRef:Object = iapso.data;
varRef.testing = 90
trace ("The shared value is " + iapso.data.testing);
trace ("This should mirror it" + varRef.testing);
杰森·斯特格斯,你又干了!回答得很好,杰森·斯特格斯,你又做了一次!回答得很好。