[英]Actionscript 3 Array
我有一個已經構建並從javascript傳遞到actionscript的數組。 雖然調試我可以看到對象很好,但在實際使用數組時,我無法訪問這些值。 此外,當鼠標懸停在'keywords [i]'上時,工具提示會彈出正確的值。
以下代碼片段:
//build where clause
var whereClause:String = "Keyword IN (";
for(var i:int=0;i<keywords.length;i++) {
whereClause += "'" + keywords[i] + "', ";
}
whereClause = whereClause.substr(0, whereClause.length-2);
whereClause +=") ";
導致whereClause var為“Keyword IN('undefined','undefined','undefined','undefined','undefined','undefined')”
我可以看到數組不是'普通'的actionscript數組,在監視窗口中它給它一個類型'__HTMLScriptArray',所以這顯然是問題的來源。 知道如何獲取__HTMLScriptArray對象內的數據嗎?
如果您的關鍵字數組有效,那么您應該使用連接構建where條件:
var whereClause : String = "Keyword IN ('";
whereClause += keywords.join("', '");
whereClause += "')";
在那種情況下你可以跳過你的whereClause = whereClause.substr(0, whereClause.length-2);
您可以嘗試使用for-in循環。 就像是:
for (var key:String in keywords)
{
trace(key, ':', keywords[key]); // trace for debugging, to see key and value
whereClause += "'" + keywords[key] + "', ";
}
看看是否有效。
我從未見過這個問題,這是普通的Flash還是Flex? (雖然兩者都沒有遭受過這種情況),我猜你也在使用ExternalInterface。 無論如何,不是做一個正常的for循環,而是使用a for each。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.