今天做了一个实验遇到一个问题,尝试ios打包,但是发现ios打包依旧不能加载含有代码的swf,虽然官方宣称air 3.6能够证实解决这个问题。不过正式版本还是要后续等待一段时间。
那么只能采用蛋疼的swc嵌入方式去制作。好吧,今天看了一点资料,结合自己需求尝试制作一个小需求,就是批量把fla文件导出swc文件。然后一个个嵌入去。
exportPublishProfileString 这个方法 就是我们在发布的设置界面,里面可以输出一个xml的数据类型。
我们可以通过替换字符串的方式来对设置的属性更改,如。 profileXML = profileXML.replace("<swc>0</swc>", "<swc>1</swc>");
这个方式,可以控制输出的设定值。修改完成我们重新导入完成这个操作。下面可以对其进行修改以适应你的需求。
browImageFile(); function browImageFile() { fl.outputPanel.clear(); var fileURL= fl.browseForFolderURL("请选择导入文件夹"); if(fileURL) exportSwc(fileURL); } function exportSwc( folderPath ) { var sources = FLfile.listFolder( folderPath); var i = 0; var len = sources.length; for ( i=0; i<len; i++ ) { var props = sources[i].split( "." ); var extendsName = props[1].toLowerCase(); if ( extendsName == "fla" ) { var doc = fl.openDocument( folderPath + "/" + sources[i] ); var profileXML = fl.getDocumentDOM().exportPublishProfileString('Default'); profileXML = profileXML.replace("<swc>0</swc>", "<swc>1</swc>"); profileXML = profileXML.replace("<html>1</html>", "<html>0</html>"); profileXML = profileXML.replace("<flash>1</flash>", "<flash>0</flash>"); fl.getDocumentDOM().importPublishProfileString(profileXML); doc.save(); doc.publish(); doc.close(); } } }