2011-06-16 201 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