gpt4 book ai didi

flash - Actionscript-3 命名空间和动态类型?

转载 作者:行者123 更新时间:2023-12-04 16:56:44 27 4
gpt4 key购买 nike

好吧,这是一个奇怪的...

是否可以将命名空间成员添加到匿名或动态类型?例如,如果您想将内置类型“标记”为“已触摸”?

早些时候我想过向样式表和它们的内部样式添加隐藏成员,并想知道如何防止它们被覆盖或序列化或其他任何东西。我放弃了,因为有很多其他方法可以做我想做的事情,而且截止日期迫在眉睫——但我仍然想知道它是否可行?

我一直在努力,但我没有运气...

namespace mynamespace = "http://foo.bar/";
Object.prototype.test = "default";
Object.prototype.mynamespace::test = "mynamespace";

var o:Object = new Object();
trace(o.test);
trace(o.mynamespace::test);

在最新的 Flex 4 SDK 上,我没有任何用...

最佳答案

我建议你这样做:

package  {
import flash.utils.Dictionary;
public class Annotations {
private static var annotations:Dictionary = new Dictionary(true);
public static function of(target:Object):Object {
var ret:Object = annotations[target];
if (ret == null) annotations[target] = ret = Object;
return ret;
}
}
}

用法
var o:Object = new Object();
Annotations.of(o).foo = 1234;
trace(Annotations.of(o).foo);//1234

请注意,这是相对昂贵的,但实际上性能相当不错。在性能危急的情况下,您应该避免使用弱键字典和静态调用。

问候语
后退2dos

关于flash - Actionscript-3 命名空间和动态类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3162917/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com