Flash 对象引用作为字符串?

Flash 对象引用作为字符串?,flash,actionscript-3,Flash,Actionscript 3,在java中,您可以为对象获取一个 在as3中如何做到这一点?您可以尝试使用第三方哈希函数(如md5或sha1)。Java中对象的哈希代码(顺便说一下,C#)也是由哈希函数生成的 希望这能有所帮助。与java线程上的响应一样,它是FlexSDK中唯一的ID生成器。这可以在mx.utils.UIDUtil下找到,它的工作相当简单 var ID:String = UIDUtil.createUID(); 希望这有帮助。您可以使用此功能,获得独特的uint。。。如果要,请将其转换为字符串…:-P

在java中,您可以为对象获取一个


在as3中如何做到这一点?

您可以尝试使用第三方哈希函数(如md5或sha1)。Java中对象的哈希代码(顺便说一下,C#)也是由哈希函数生成的


希望这能有所帮助。

与java线程上的响应一样,它是FlexSDK中唯一的ID生成器。这可以在mx.utils.UIDUtil下找到,它的工作相当简单

var ID:String  = UIDUtil.createUID();

希望这有帮助。

您可以使用此功能,获得独特的uint。。。如果要,请将其转换为字符串…:-P

package {
    import flash.utils.Dictionary;
    public class ObjectUIDUtil {
        private static var _uids:Dictionary = new Dictionary(true);
        private static var _cter:uint = 1;
        public static function getUID(obj:Object):uint {
            var ret:uint = _uids[obj];
            return (ret == 0) ? (_uids[obj] = _cter++) : ret;
        }
    }
}
请注意,这甚至不是必需的,因为
flash.utils.Dictionary
允许直接使用对象作为键

格里茨


back2dos

需要明确的是,Java的hashCode()并不完全是“唯一的”。。。哈希冲突仍然会导致不同的对象返回相同的hashCode()值。这是一个有用的页面(),但结果不是唯一的。。。事实上,对于给定类型的对象,大多数都是完全相同的。同样在flex中,mx.utils.NameUtiliti中也有createUniqueName。我很好奇,使用
字典
比普通对象有什么好处?(老实说,我不知道也很感兴趣)。这里的问题是,如果使用任何值作为
对象的键
,该值将转换为字符串,并且默认情况下相同类型的对象具有相同的字符串表示形式,因此对于同一类的每个实例,您都会获得相同的id
Dictionary
基本上不修改该值,尽管它将
字符串
“1”
int
1
视为同一个键,但它将根据非基本对象的标识来区分它们。