2011-05-27 145 views
0

我嘗試使用Graph API AS3爲我的Flash應用程序標記照片上的多個朋友。如果我靜態使用一個值,結果是成功並且像魅力一樣工作。但是,當我嘗試使用從數組獲得的動態值(從複選框填充)輸入params.tags時,它失敗。使用Facebook圖標在照片上標記多個朋友的問題

這裏的活力和失敗的:

var arrUserID:Array = new Array("1447615481","1052646429"); 

var len:Number = arrUserID.length; 
var someStr:String = ""; 
for (var i:Number=0;i<len;i++) { 
    someStr += arrUserID[i]+","+Math.round(Math.random()*imgHolder.width)+","+Math.round(Math.random()*imgHolder.height); 
    if(i != len-1){ 
     someStr += "||"; 
    } 
} 

var arr:Array = []; 
arr = someStr.split("||"); 

var outputArr:Array = []; 

var len2:Number = arr.length; 

var temp:Array = []; 

for (var j:Number=0;j<len2;j++) { 
    temp = arr[j].toString().split(","); 
    outputArr.push({'tag_uid':temp[0], 'x':temp[1], 'y':temp[2]}); 
} 

var params:Object = new Object(); 
params.image = bitmap; 
params.message = "YEZAAA"; 
params.fileName = "file-name"; 
**params.tags = JSON.encode(outputArr);** --> dynamic value from array 

Facebook.api('me/photos', onSaveToPhotoAlbumComplete, params); 

,這裏是成功的版本和靜的:

var params:Object = new Object(); 
params.image = bitmap; 
params.message = "YEZAAA"; 
params.fileName = "file-name"; 
params.tags = '[{tag_uid:"12345678","x":"0","y":"0"},{tag_uid:"001 111","x":"0","y":"0"}]'; 

Facebook.api('me/photos', onSaveToPhotoAlbumComplete, params); 

所以它只是讓我一直想知道,什麼是我的錯其實?

這裏真的有需要,因爲我在一週後一直在拉我的頭髮試圖弄清楚,但無濟於事。

回答

2

這裏就是我得到了我的動態ID與你的代碼工作:

1)你要記住的是,像你的靜態代碼,標籤參數需要最終導致String。您的動態版本使用的是實際的Object。因此,保持一個字符串,像這樣:

var tagsArr:String = '[{tag_uid:"' + uid1 + '", "x":"0", "y":"0"}, 
         {tag_uid:"' + uid2 + '", "x":"0", "y":"0"}]'; 
+0

感謝DA提示安德烈SFAT ...其實我弄清楚already..Correction here..actually靜態版本我是從這個美好的社區獲得(有人發佈信貸給他..這是我忘了) – user637852 2011-06-08 11:05:27