我正在与一个FLA,作为一个文件(文档类),和一个JSFL文件工作。瑞士法郎在WindowSWF文件夹中生成(例如$闪蒸/ WindowSWF)

我有一个简单windowSWF和我使用MMExecute和fl.runScript通过从AS3变量JSFL。我没想到我会遇到麻烦,如果我想虽然使用的对象。

在我windowSWF我称之为一个DataGrid的 settingsGrid 的有以下栏目: [ “前缀”, “后缀”, “类型”] 和我特林传 settingsGrid.dataProvider.toArray()到JSFL脚本。

问题是它出来在另一侧上为未定义。我如何能围绕得到任何提示?

短的版本:如何传递像{前缀:“值”,后缀:“值”,类型:“值”}对象数组从ActionScript来JSFL。通过单个对象的工作原理,当我传递数组我得到一个错误:

"Syntax Error: missing ] after element list"

我的函数调用看起来是这样的:

MMExecute('fl.runScript(fl.configURI + "Commands/LazyGen.jsfl","generate","_",'+ settingsGrid.dataProvider.toArray() +');');

和在JSFL文件的方法中的签名看起来像这样:

function generate(prefixArg,settingsArg){}
有帮助吗?

解决方案

我是从一个数据网格,以JSFL经过的物体。该对象具有以下属性: 替换。这里是我使用来构造字符串我可以JSFL通过从动作的功能:

private function dataProviderToString(dataProvider:DataProvider):String{
            var settingsString:String = '[';
            for(var i:int = 0 ; i < dataProvider.length ; i++){
                if(i < (dataProvider.length-1)) settingsString += '{key:"'+ dataProvider.getItemAt(i).key + '",replacement:"' + dataProvider.getItemAt(i).replacement + '",type:"'+ dataProvider.getItemAt(i).type + '"},';
                else settingsString += '{key:"'+ dataProvider.getItemAt(i).key + '",replacement:"' + dataProvider.getItemAt(i).replacement + '",type:"'+ dataProvider.getItemAt(i).type + '"}';
            }
            settingsString += ']';
            return settingsString;
        }

我注意到在SWF设置不会奇迹般地保存不知何故,所以我用本地共享对象存储从数据提供程序的设置。我想我可能只是写了使用FLfile一个文件,但我不想让数组转换为字符串和背部。我正在写一个dataProvider中的数组(dataProvider.toArray())为ByteArray,我只是读回推在进入一个新的DataProvider的构造,当我需要它。

其他提示

只要你windowsSWF里面工作了你的变量值,并通过MMExecute命令传递变量到JSFL。

下列命令设置在工具栏到黑色填充颜色。因此,例如,该颜色的值可以从一个颜色选择器部件被抓取,然后传递到JSFL。所有我做的是从串联动作脚本变量成经由MMExecute发送的字符串。

var myColor:String = "#000000";
MMExecute("var fill = fl.getDocumentDOM().getCustomFill(\"toolbar\");fill.style= \"solid\";fill.color = \'"+myColor+"\';fl.getDocumentDOM().setCustomFill( fill );");
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top