スポンサーリンク

AdobeFlexSWFの関数をJavaScriptで呼び出したり、
SWFからJavaScriptを呼び出したりすることが簡単にできます。

今回は、flashのExternalInterfaceを用いて、
flashからJavaScriptの関数を呼び出したり、
JavaScriptからflashの関数を呼び出してみます。


addCallback
ExternalInterface.addCallback(functionName:String,closure:Fucntion):void
は、ActionScriptメソッドをコンテナから呼び出し可能なものとして登録します。
JavaScriptから呼び出させるように関数を登録します。


call
ExternalInterface.call(functionName:String, ...argumetns):*
Flash
Playerコンテナで公開されている関数を呼び出し、必要に応じて引数を渡します。
JavaScriptの関数の呼び出しに使います。

ExternalInterfaceTest.mx
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute" viewSourceURL="srcview/index.html" width="147"
height="88" creationComplete="initApp();">
	<mx:Script>
		<![CDATA[
			import mx.controls.Alert;
			private function initApp():void{
				// JavaScript用に登録
				ExternalInterface.addCallback("ASfunc",
						ASfunc);
			}
			public function ASfunc(s:String):String{
				Alert.show(s);
				return "I am ASfunc";
			}
			private function callJS():void{
				// JavaScriptのJSfunc関数を呼び出す
				var s:String = ExternalInterface.call(
						"JSfunc", "I am AS");
				Alert.show(s);
			}
		]]>
	</mx:Script>
	<mx:Button click="callJS()" label="call js" />
</mx:Application>

ExternalInterfaceTest.html
<script type="text/javascript">
<!--
/*
 * Flexから呼び出す関数
 */
function JSfunc(s) {
	alert(s);
	return "I am JS";
}
/*
 * Flexを呼び出す関数
 */
function callAS(s) {
	var e = document.getElementById("ExternalInterfaceTest");
	var r = e.ASfunc(s);
	alert(r);
}
// -->
</script>

<div onclick="callAS('from js');">click</div>

ExternalInterfaceTestをdocument.getElementByIdしないと
下記のエラーがfirefoxで出ました。

グローバルスコープで ID または name
属性値により要素を参照しています。代わりに W3C 標準の
document.getElementById() を使用してください。
[Break on this error] undefined


スポンサーリンク
スポンサーリンク
 
いつもシェア、ありがとうございます!


もっと情報を探しませんか?

関連記事

最近の記事

人気のページ

スポンサーリンク
 

過去ログ

2020 : 01 02 03 04 05 06 07 08 09 10 11 12
2019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12

サイト

Vim入門

C言語入門

C++入門

JavaScript/Node.js入門

Python入門

FreeBSD入門

Ubuntu入門

セキュリティ入門

パソコン自作入門

ブログ

トップ


プライバシーポリシー