[英]Flex - XML generated with Javascript to an ArrayCollection
[英]Flex - populate Combobox with arrayCollection with data from javascript
我正在使用Flex和Extendscript在Photoshop中开发一个面板。 我几乎可以使它正常工作,但是凭借我的Flex技能,我从jsx文件中提取的数组存在一些问题。 该数组在警报框中显示正常,但是在拆分和创建新集合之间的某个地方出了问题。 感谢您对此的任何帮助。
这是我的Flex
protected function loadData():void {
var grabFolderNames:SyncRequestResult = CSXSInterface.instance.evalScript("labNames");
var list:String = grabFolderNames.data;
var array:Array = list.split(",");
var arrayCollection:ArrayCollection = new ArrayCollection();
arrayCollection.source = array;
labFolderList.dataProvider = arrayCollection;
}
这是jsx
function labNames() {
var labs = ["Red", "Green", "Blue", "Purple", "Yellow"];
alert("This function is firing" + labs);
}
我不熟悉CSXSInterface,但是,由于labNames()
仅在警报中显示字符串,并且不将其作为String返回,因此grabFolderNames.data
可能不包含您期望的内容。 为什么不使用调试器检查其值?
1)您应该修改您的labNames()方法以返回数组:
function labNames() {
var labs = ["Red", "Green", "Blue", "Purple", "Yellow"];
return labs;
}
2)确保在HTML包装器中,您的flex对象具有allowScriptAccess="always"
(或allowScriptAccess="sameDomain"
)以便启用javascript / Flex通讯。
3)如果仍然无法正常工作,请更换
var grabFolderNames:SyncRequestResult = CSXSInterface.instance.evalScript("labNames");
通过:
var obj:* = CSXSInterface.instance.evalScript("labNames");
然后在该行上放置一个断点,看看是否有一些数据填充“ obj”并在此处报告结果。
希望能有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.