[Flex]ExternalInterface使用時のエラーハンドリングに関して

JavaScriptと連携する際、ExternalInterfaceを使用しますがエラーハンドリングに関して注意が必要です。
以下はExternalInterfaceを使用した一般的なサンプルです。 エラーハンドリングの為にtry~catch~ステートメントを使用しております。

<mxmlコード>



	
		
	

	
		
	
	




<javaScript(index.template.htmlに実装)>

        function testFunc()
        {
        	window.alert("TestJs");
        	${application}.callBack();
        
        }

JavaScriptの呼び出しを行うイベントハンドラにおいて、「ExternalInterface.marshallExceptions = true;」という処理を実装しておりますが、実はmarshallExceptionsをtrueに設定しておかないと、コールバック先のイベントでthrowしたErrorが無視されてしまう為注意が必要となります。
marshallExceptionsの詳細は以下の通り。

ji100606-1.png

ただし、marshallExceptionsはFlexBUilder3から使用可能な機能なので、コンパイラのバージョンが3以前の場合は使用できません。
私の職場のシステムはFlex2立った為、marshallExceptionsを使用できず困った問題となってしまいました。エラー用のEventを作成しエラー時にdispatchする方法で回避致しましたが他に回避策は無いようです。

ExternalInterface使用時は注意が必要です。

このブログについて

このブログは吉祥寺にあるブレインチャイルド株式会社の社員で投稿しています。
業務ではまってしまったことや発見したこと。
自分達で新たに学習してみようと思って勉強し始めたことなどを綴っています。
こんな社員が働いているブレインチャイルドに興味がわいててきたなら、是非お問い合わせください。
会社案内
求人案内
先輩のコメント