package { import adobe.utils.MMExecute; /** * @author kamoyusuke :: kaede * xingxx.com * SWF(AS3)からJSFLにアクセスするためのメソッドMMEXecuteをもうちょっと使いやすくします。 * */ public class MMExecute2 { //プラットフォーム別のCONFIGフォルダにアクセスするコマンド文字列を含む定数。 public static const CONFIG_JS_URI:String = 'fl.configURI+"/Javascript/"' public static const CONFIG_COMMANDS_URI:String = 'fl.configURI+"/Commands/"' //内部的に使う名前空間 namespace def = "http://xingxx.com/JSFLUtil/def"; namespace arg = "http://xingxx.com/JSFLUtil/arg"; //デフォルト設定を格納する変数 def static var directoryPath:String; def static var fileName:String; /** * runでデフォルトで指定されるディレクトリとファイル名を設定します。 * @param directoryPath : JSFLファイルが定義されているディレクトリ * @param fileName : JSFLのファイル名 */ public static function setDefault(directoryPath:String = null, fileName:String = null):void { def::directoryPath = directoryPath; def::fileName = fileName; } /** * JSFLのスクリプトを実行 * directoryPathとfileNameを指定しなかった場合は、デフォルトで設定したディレクトリとファイル名がのJSFLを実行します。 * @param funcName : 実行する関数名 * @param params : 関数に渡すパラメータ * @param directoryPath : JSFLファイルがが定義されているディレクトリ * @param fileName : JSFLのファイル名。拡張子は付けません。 */ public static function run(funcName:String=null,params:Array = null,directoryPath:String=null, fileName:String=null):void{ var command:String; var paramStr:String = (params && params.length) ? "," + params.join() : ""; if (directoryPath && fileName) { var fileURI:String = (directoryPath.slice(0, directoryPath.length - 1) + fileName + ".jsfl" + directoryPath.slice(directoryPath.length - 1)); command = 'fl.runScript(' + fileURI + ',"' + funcName + '"' + paramStr + ')' }else if(def::directoryPath && def::fileName){ def::run(funcName,params) return; } if (command) MMExecute(command); else return; } //デフォルト設定されているパスからの実行 def static function run(funcName:String = null, params:Array = null):void { run(funcName,params,def::directoryPath,def::fileName) } } }