2011-06-16 164 views
0

我有这种情况,我试图保存“聊天记录”,同时人们在我的柔性移动应用程序中切换视图..Flex动态对象名称,并将对象添加到对象?

所以,我的计划是我开始与我计划的主要对象作为主要的聊天记录,以重新使用object..I称之为textObj

所以,当有人新要聊我的计划是让一个新的对象与个人用户名

因此如何如果我是从data.username之类的东西获取用户名我怎么能把它翻译成我想要创建的对象的var名称?所以,最后我结束了

var uniqueUsername:Object = new Object(); 

,所以我最终可以这样做

uniqueUsername.chatLog="Sample text log"; 

编辑:我想我并不清楚我不字面意思uniqueUsername作为用户名....

data.username等于AwesomeDudeYeah

,我想让

var AwesomeDudeYeah:Object = new Object(); 

我不能只是做

var data.username:Object = new Object(); 

所以我怎么可能使这项工作?

我想让我怎么指聊天记录textObj

内。然后我将如何去补充说,到textObj obj中的用户名?

所以我结束了textObj.uniqueUsername.chatLog="Sample text log";

我可以引用做textObj[uniqueUsername][chatLog]

(至少我认为是它是如何完成的)

任何帮助就这些议题将是巨大的!

回答

2

括号标记

var textObj:object = new Object(); 
textObj[uniqueUsername].chatLog = "Sample text log"; 


//accessed by 
textObj[uniqueUsername].chatLog 

如果uniqueUsername不在textObj存在,那么你会得到错误,所以一定要处理他们

textObj[uniqueUsername] //basically if this is undefioned or null 

//then when you do 
textObj[uniqueUsername].chatLog // is trying to find chatLog on a null/undefined object 

错误神要击打你失望

[编辑] 在阅读您对Jax的评论后,我认为您应该重做一遍,并使其更具可读性

var aUsers:Array = new Array(); 

var oUser:Object = new Objbect(); 
    oUser.name = uniqueUsername; 
    oUser.chatLog = "Sample text log"; 

aUsers.push(oUser); 

就我个人而言,我会制作一个用户类,并在其中保存用户数据。

+0

感谢您解释我如何使用户名变为对象var。你的帖子的编辑看起来像我现在可能会用到的解决方案,我认为创建一个数组并推动数组中的对象似乎是我实际上想的。对于我所了解的编程来说,这是最好的选择。如果我明白你的用户类意味着什么,我肯定会尝试它,但我真的不知道你的意思 – brybam 2011-06-16 23:46:55

1

首先,让我提一下,使用无类型对象不是一个好主意。你基本上做的是难以编码的'数据汤',调试,可能会在运行时创建空例外,并会降低开发效率。您应该使用输入类来创建对象(使用日志和名称属性创建一个用户类等)。

然而,回答你的问题:

var textObj:Object = {}; // if not instanciated already 
textObj.uniqueUsername = {chatLog:'Sample Text Log'}; 

// Or you can do it all in one line 
var textObj:Object = {uniqueUsername:{chatLog:'Sample Text Log'}}; 

你的想法,但是,这不是recommened。

+0

编辑:我想我并不清楚我不字面意思uniqueUsername作为用户名.... 说'data.username'等于'AwesomeDudeYeah' ,我想让 VAR AwesomeDudeYeah: Object = new Object(); 我不能只是做 var data.username:Object = new Object(); 那么我怎么能做到这一点? 我想让用户名如何引用textObj – brybam 2011-06-16 23:01:24

+1

中的聊天记录,这取决于您的意思是'等于AwesomeDudeYear'。那是一个字符串?另一个对象?你可能只想用'obj [enterStringNameHere] = {};'做一个关联数组,但这又是一个可笑的方法。不妨创建一个拥有该名称的User类,或让Dictionary通过一个键(用户名)来保存用户的实例。 – 2011-06-16 23:17:19