Javascript ActionScript3数组

Javascript ActionScript3数组,javascript,arrays,actionscript-3,Javascript,Arrays,Actionscript 3,我有一个数组,它已经从javascript构建并传递到actionscript中。在调试时,我可以很好地看到对象,但在实际使用数组时,我无法访问值。此外,当鼠标悬停在“关键字[i]”上时,工具提示会弹出正确的值 下面是一段代码: //build where clause var whereClause:String = "Keyword IN ("; for(var i:int=0;i<keywords.length;i++) { whereClause += "'" + keyw

我有一个数组,它已经从javascript构建并传递到actionscript中。在调试时,我可以很好地看到对象,但在实际使用数组时,我无法访问值。此外,当鼠标悬停在“关键字[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 +=") ";
//构建where子句
var whereClause:String=“关键字输入(”;

for(var i:int=0;i我从来没有见过这个问题,这是普通Flash还是Flex?(虽然在这两个方面都没有遇到过),但我想你也在使用ExternalInterface。无论如何,不要使用普通的for循环,而是每个都使用一个。

我从来没有见过这个问题,这是普通Flash还是Flex?(虽然在这两个方面都没有遇到过),我猜您也在使用ExternalInterface。无论如何,不要使用普通的for循环,而是使用for-each。

您可以尝试使用for-in循环。类似于:

for (var key:String in keywords) 
{
    trace(key, ':', keywords[key]); // trace for debugging, to see key and value
    whereClause += "'" + keywords[key] + "', ";
}

看看这是否有效。

您可以尝试改用for-in循环。类似于:

for (var key:String in keywords) 
{
    trace(key, ':', keywords[key]); // trace for debugging, to see key and value
    whereClause += "'" + keywords[key] + "', ";
}

看看这是否有效。

如果关键字数组有效,则应使用连接生成where条件:

var whereClause : String = "Keyword IN ('";
whereClause += keywords.join("', '");
whereClause += "')";

在这种情况下,您可以跳过
whereClause=whereClause.substr(0,whereClause.length-2);

如果您的关键字数组有效,那么您应该使用连接来构建where条件:

var whereClause : String = "Keyword IN ('";
whereClause += keywords.join("', '");
whereClause += "')";

在这种情况下,您可以跳过
whereClause=whereClause.substr(0,whereClause.length-2);

您如何将数据从JS传递到Flash?是的,请准确回答数据来自何处。您如何将数据从JS传递到Flash?是的,请准确回答数据来自何处。我使用的是Flex。我没有使用ExternalInterface。我有一个注册(或附加)的初始化方法“mx:HTML”对象的一系列方法。我可以在传入管道分隔字符串并将其转换为数组时使用一个变通方法。但我认为最初的问题很有趣。我猜问题是因为当时没有直接使用ExternalInterface。我从未将您的方法用于类似的事情。我使用Flex。我没有使用Ext我有一个注册(或附加)的初始化方法“mx:HTML”对象的一系列方法。我可以在传入管道分隔字符串并将其转换为数组时使用一个变通方法。但我认为最初的问题很有趣。我猜问题是因为当时没有直接使用ExternalInterface。我从未将您的方法用于类似的事情。这是更简洁的代码(而且它起作用了).Thank:)虽然我应该尝试使用一个参数,而不是像这样构建where子句,因为它在预编译的SQLStatement对象中使用。但是,如果更改.text属性,它将(可以理解)必须再次编译。这是更简洁的代码(而且它工作正常)。Thank:)尽管我应该尝试使用一个参数,而不是像这样构建where子句,因为它是在预先编译的SQLStatement对象中使用的。但是,如果更改.text属性,则必须(可以理解)再次遵守该属性。区别可能在于uu HTMLScriptArray不是flash数组类型,而是使用字符串作为键而不是整数的对象。for in循环为您提供了访问值所需的键。这就是我所猜测的,但为什么将鼠标悬停在关键字[I](调试时)上会在工具提示中为您提供正确的值?区别可能在于您的u HTMLScriptArray不是flash数组类型,而是使用字符串作为键而不是整数的对象。for-in循环为您提供了访问值所需的键。这就是我所猜测的,但为什么将鼠标悬停在关键字[I](调试时)上会在工具提示中为您提供正确的值?