0

FlexとExtendscriptを使用してPhotoshopでパネルを開発しています。私はこれを機能させるのにかなり近づいていますが、Flexスキルを使用すると、jsxファイルから取得する配列に少し問題があります。配列はアラートボックスに正常に表示されますが、分割してから新しいコレクションを作成するまでのどこかで問題が発生しています。これについて助けてくれてありがとう。

これが私のフレックスです

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);
}
4

2 に答える 2

0

私はCSXSInterfaceに精通してlabNames()いませんが、アラートに文字列を表示するだけで、文字列として返さないため、grabFolderNames.data期待どおりの文字列が含まれていない可能性があります。デバッガで値を確認してみませんか?

于 2012-03-07T08:35:13.567 に答える
0

1)labNames()メソッドを変更して、配列を返す必要があります。

function labNames() {
    var labs = ["Red", "Green", "Blue", "Purple", "Yellow"];
    return labs;
}

2) javascript / Flex通信を有効にするために、使用しているallowScriptAccess="always"(または)フレックスオブジェクトのHTMLラッパーを確認してください。allowScriptAccess="sameDomain"

3)それでも機能しない場合は、交換してください

var grabFolderNames:SyncRequestResult = CSXSInterface.instance.evalScript("labNames");

に:

var obj:* = CSXSInterface.instance.evalScript("labNames");

次に、その行にブレークポイントを設定し、「obj」にデータが入力されているかどうかを確認し、ここに結果を報告します。

お役に立てば幸いです。

于 2012-03-07T21:37:32.130 に答える