可以用來讓JavaScript呼叫ActionScript使用,範例如下
//Flex 部分
<?xml version="1.0" encoding="utf-8"?>
<mx:Application creationComplete="init();" xmlns:mx=http://www.adobe.com/2006/mxml
layout="vertical" width="300" height="300">
<mx:Script>
<![CDATA[
import mx.controls.Label;
import mx.controls.TextInput;
private function init():void
ExternalInterface.addCallback("callAs", callAs);
}
private function allAs(v1:Object=null,v2:Object=null):void
{
var t1:TextInput = new TextInput( );
t1.text = v1.toString( );
var l1:Label = new Label( );
l1.text = v2.toString( );
box.addChild(t1);
box.addChild(l1);
}
]]>
</mx:Script>
<mx:VBox id="box" />>
</mx:Application>
//HTML 部分
- 於<head> </head>標籤之間加入以下片段
<script language="JavaScript" type="text/javascript">
function thisMovie(movieName)
{
if (navigator.appName.indexOf("Microsoft") != -1)
{
return window[movieName];
}else
{
return document[movieName];
}
}
function callAs(value,value2)
{
thisMovie("main").callAs(value , value2);
}
</script>
- 於<body></body>標間之間加入如下片段
<div align="center">
<input type="Button" value="addMedia" onClick="callAs(out.value,'Flex');" />
<input id="out" type=text value="Mr. & Mrs. Smith">
</div>
- 注意請將找到AC_FL_RunContent( )內之"id", "${application}"改成"id", "main",。
- 於<noscript></noscript>標籤內找到<param name="movie" value="${swf}.swf" />將其改成<param name="movie" value="main.swf" />
這是按下按鈕之後的畫面,會將HTML中文字欄位的值設給Swf中的文字欄位。
按鈕顯示addMedia是因為自己在做另一個測試,忘了把字改掉,將就一下囉!
沒有留言:
張貼留言