Apache flex 如何扩展ObjectProxy类
我试图扩展ObjectProxy类,原因是我想有一个ObjectProxy类的单例,所以我做了如下Apache flex 如何扩展ObjectProxy类,apache-flex,actionscript-3,Apache Flex,Actionscript 3,我试图扩展ObjectProxy类,原因是我想有一个ObjectProxy类的单例,所以我做了如下 package utils { import mx.utils.ObjectProxy; public class UniformObjectProxy extends ObjectProxy { private static var _instance:UniformObjectProxy; public function Unifor
package utils
{
import mx.utils.ObjectProxy;
public class UniformObjectProxy extends ObjectProxy
{
private static var _instance:UniformObjectProxy;
public function UniformObjectProxy(secure:PrivateClass, item:Object=null, uid:String=null, proxyDepth:int=-1)
{
super(item, uid, proxyDepth);
}
public static function getInstance(item:Object=null):UniformObjectProxy{
if(UniformObjectProxy._instance == null){
var security:PrivateClass = new PrivateClass();
UniformObjectProxy._instance = new UniformObjectProxy(security, item);
}
return UniformObjectProxy._instance;
}
}
}
class PrivateClass{
public function PrivateClass(){
}
}
当我创建简单对象的对象统一时,我将其传递给我的UniformObjectProxy.getInstance()静态方法以获取我的objectProxy的实例,到目前为止还不错
我的问题是当我尝试绑定objectProxy实例的属性时,比如
_opc = UniformObjectProxy.getInstance(_uniform);
cw:ChangeWatcher = BindingUtils.bindSetter(dispatchColorChange, _opc, data.id);
dispatchColorChange处理程序函数只被调用一次,我已经检查了ChangeWatcher.isWatching()并返回false,这意味着如果我创建一个类似
_opc = new ObjectProxy(_uniform);
cw:ChangeWatcher = BindingUtils.bindSetter(dispatchColorChange, _opc, data.id);
绑定工作得很好,所以我的想法是,当我扩展objectProxy类时,如何正确地实现这一点,请帮助我!,谢谢你提供任何线索 扩展ObjectProxy似乎有问题(我个人在尝试重写setProperty方法时遇到了名称空间问题,我觉得这个类的使用方式与Proxy类不同) 这不是对你问题的直接回答,但我想你不应该仅仅为了它而坚持单身模式。要获得上述相同的访问/结果,我建议执行以下操作:
package utils
{
import mx.utils.ObjectProxy;
public class UniformObjectProxy
{
private static var _proxy:ObjectProxy;
public function UniformObjectProxy()
{
throw("do not instantiate me!")
}
public static function getProxy(item:Object=null):ObjectProxy{
if(_proxy == null){
_proxy = new ObjectProxy(item);
}
return _proxy;
}
}
}
然后:
var _opc:ObjectProxy = UniformObjectProxy.getProxy(_uniform);
扩展ObjectProxy似乎有问题(就我个人而言,我在尝试重写setProperty方法时遇到了名称空间问题,我觉得这个类的使用方式与代理类不同) 这不是对你问题的直接回答,但我想你不应该仅仅为了它而坚持单身模式。要获得上述相同的访问/结果,我建议执行以下操作:
package utils
{
import mx.utils.ObjectProxy;
public class UniformObjectProxy
{
private static var _proxy:ObjectProxy;
public function UniformObjectProxy()
{
throw("do not instantiate me!")
}
public static function getProxy(item:Object=null):ObjectProxy{
if(_proxy == null){
_proxy = new ObjectProxy(item);
}
return _proxy;
}
}
}
然后:
var _opc:ObjectProxy = UniformObjectProxy.getProxy(_uniform);
这不是我问题的答案,但这很好,谢谢你给我指出了正确的方向,这很有效,谢谢!!!!这不是我问题的答案,但这很好,谢谢你给我指出了正确的方向,这很有效,谢谢!!!!