Home > JSFL > JSFL :: MMExecute+fl.runScriptで関数呼び出し時、引数に改行コードが入るとエラー

JSFL :: MMExecute+fl.runScriptで関数呼び出し時、引数に改行コードが入るとエラー

  • Posted by: kaede
  • 2010年3月 6日 13:07
  • JSFL

MMExecuteとfl.runScriptを使うことで、SWFPnaelから外部のJSFLを叩けることは、このブログでも以前取り上げました。

SWFPanel開発時には、多用することになるこの二つのメソッド。
しかし、外部JSFLの関数を呼び出す際には注意が必要です。

引数はString

MMExecuteは第一引数にJSFLをStringで渡します。ということは、必然的に関数のパラメータもStringになります。

改行コードが含まれていると

やってしまいがちなのがこの問題です。SWFPanel側で何らかの処理をし、MMExecuteに引き渡す際、Stringに改行コードが混入していると、エラーが発生します。


MMExecute("fl.runScript(fl.configURI+'Commands/test.jsfl','test','mes\nsage')")
//SyntaxError: unterminated string literal

エスケープ

というわけで、MMexecuteで関数呼び出し、引数を渡す際は、必ずエスケープをするようにします。

ActionScript 3.0

as3では、トップレベル関数として、escape関数が用意されています。

import adobe.utils.MMExecute;
var param:String = escape("mes\nsage");
MMExecute("fl.runScript(fl.configURI+'Commands/test.jsfl','test','"+param+"')")

JSFL

JSFL側では、unescape関数を使用して、引数を元に戻します。

function test(str){
	fl.trace(unescape(str))
}

Summer Camp 2010 野中文雄のActionScript 3.0による 三次元表現

無料  ActionScript 3.0による 三次元表現 in アップルストア 銀座

フィジカルコンピューティング ラボラトリー

Comments:0

Comment Form

コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。

Trackbacks:0

TrackBack URL for this entry
http://xingxx.com/mt/mt-tb.cgi/110
Listed below are links to weblogs that reference
JSFL :: MMExecute+fl.runScriptで関数呼び出し時、引数に改行コードが入るとエラー from xingxx

Home > JSFL > JSFL :: MMExecute+fl.runScriptで関数呼び出し時、引数に改行コードが入るとエラー

Search
Feeds
Tag Cloud

Return to page top