[b]1.Link to an External URL[/b]
[b]2.简单的js调用 flex code[/b]
ExternalInterface.call("alert", "foo");
ExternalInterface.call("alert('foo')");
ExternalInterface.call("function(){}");
ExternalInterface.call("function(){alert('foo');}");
ExternalInterface.call("function(){alert('foo'); alert('bar');}");
[b]3.定义一个js函数的字符串[/b]
var js:String = "function(){function myFunc(str){alert(str);};myFunc(Foobar);}";ExternalInterface.call(js);
var js:String = "function(){"
js+="function myFunc(str){"
js+="alert(str);};"
js+="myFunc(Foobar);}";
ExternalInterface.call(js);
[b]4.xml形式定义js函数[/b]
import flash.external.ExternalInterface;
var script_js :XML =<script>
<![CDATA[
function(){
// 添加js的方法
}
]]>
</script>
import flash.external.ExternalInterface;
var myJavaScript :XML = <script>
<![CDATA[
function(){
function myLocalFunction(){
alert('foo');
}
var myOtherLocalFunction = function(){
alert('bar');
}
myGlobalFunction = function(){
alert('Yo global dude!');
}
}
]]>
</script>
ExternalInterface.call(myJavaScript);
var callFunction_js :XML = <script>
<![CDATA[ function(txt, txt2){ txt = txt + " World, " + txt2; Dojo.myFunction(txt); } ]]>
</script>
ExternalInterface.call(callFunction_js, "Hello", "Good to see you!" );
[b]5.获取flash的变量在[/b]
在index.html中script脚本中
程序中获取flash变量
如果ExternalInterface 不支持浏览器, 而你又想调用JavaScript 函数, 还可使用
flash.net.navigateToURL( ) 函数。
navigateToURL( ) 函数是异步调用,还有它没有返回值,调用JavaScript函数还须用flash.net
URLRequest对象进行包装,下面的例子调用JavaScript alert( ) 函数:
var request:URLRequest = new URLRequest("javascript:alert('example');");
navigateToURL(request);
[b]6.JavaScript callback with the alert[/b]
修改index.template.html 或者修改当前运行的mxml文件对应bin目录的html。
找到一个
var flashvars = {};
//添加方法js function
flashvars.callback=myCallback;
function myCallback(item)
{
alert(item);
}
相关mxml文件
另一个demo
html文件修改
var flashvars = {};// 传递参数 flashvars.callback=itemSelected;
function itemSelected( index, data )
{
alert( [ index, data ] );
}
[code="xml"]
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="1024" minHeight="768">
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
private var items:ArrayCollection =
<fx:Script>
<![CDATA[
import flash.net.navigateToURL;
import mx.collections.ArrayCollection;
public var array:ArrayCollection = new ArrayCollection(
[ {label:"_blank", data:1},
{label:"_self", data:2},
{label:"_parent", data:3},
{label:"_top", data:4} ]);
import flexunit.utils.ArrayList;
private function goToURL() : void
{
navigateToURL( new URLRequest( newUrl.text ),
target.selectedItem as String );
}
]]>
</fx:Script>
<s:TextInput id="newUrl"
top="10" left="10" right="10"
text="http://www.oreilly.com/" />
<s:ComboBox id="target"
top="40" left="10"
dataProvider="{array}" />
<s:Button label="Go"
left="10" top="70"
click="goToURL()" />
[b]2.简单的js调用 flex code[/b]
ExternalInterface.call("alert", "foo");
ExternalInterface.call("alert('foo')");
ExternalInterface.call("function(){}");
ExternalInterface.call("function(){alert('foo');}");
ExternalInterface.call("function(){alert('foo'); alert('bar');}");
[b]3.定义一个js函数的字符串[/b]
var js:String = "function(){function myFunc(str){alert(str);};myFunc(Foobar);}";ExternalInterface.call(js);
var js:String = "function(){"
js+="function myFunc(str){"
js+="alert(str);};"
js+="myFunc(Foobar);}";
ExternalInterface.call(js);
[b]4.xml形式定义js函数[/b]
import flash.external.ExternalInterface;
var script_js :XML =<script>
<![CDATA[
function(){
// 添加js的方法
}
]]>
</script>
import flash.external.ExternalInterface;
var myJavaScript :XML = <script>
<![CDATA[
function(){
function myLocalFunction(){
alert('foo');
}
var myOtherLocalFunction = function(){
alert('bar');
}
myGlobalFunction = function(){
alert('Yo global dude!');
}
}
]]>
</script>
ExternalInterface.call(myJavaScript);
var callFunction_js :XML = <script>
<![CDATA[ function(txt, txt2){ txt = txt + " World, " + txt2; Dojo.myFunction(txt); } ]]>
</script>
ExternalInterface.call(callFunction_js, "Hello", "Good to see you!" );
[b]5.获取flash的变量在[/b]
在index.html中script脚本中
<script type="text/javascript">
<!-- For version detection, set to min. required Flash Player version, or 0 (or 0.0.0), for no version detection. -->
var swfVersionStr = "${version_major}.${version_minor}.${version_revision}";
<!-- To use express install, set to playerProductInstall.swf, otherwise the empty string. -->
var xiSwfUrlStr = "${expressInstallSwf}";
var flashvars = {};
var flashvars = {};
flashvars.param1 = "param1";
flashvars.param2 = "param2";
flashvars.param3 = "param3";
flashvars.param4 = "param4";
程序中获取flash变量
var parameters : Object = mx.core.Application.application.parameters;
var param1 : String = parameters.quality;
var param2 : String = parameters.param2 ;
var param3 : String = parameters.param3 ;
var param4 : String = parameters.param4;
output.text = "param1: " + param1 + "\n" +
"param2: " + param2 + "\n" +
"param3: " + param3 + "\n" +
"param4: " + param4;
如果ExternalInterface 不支持浏览器, 而你又想调用JavaScript 函数, 还可使用
flash.net.navigateToURL( ) 函数。
navigateToURL( ) 函数是异步调用,还有它没有返回值,调用JavaScript函数还须用flash.net
URLRequest对象进行包装,下面的例子调用JavaScript alert( ) 函数:
var request:URLRequest = new URLRequest("javascript:alert('example');");
navigateToURL(request);
[b]6.JavaScript callback with the alert[/b]
修改index.template.html 或者修改当前运行的mxml文件对应bin目录的html。
找到一个
var flashvars = {};
//添加方法js function
flashvars.callback=myCallback;
function myCallback(item)
{
alert(item);
}
相关mxml文件
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="1024" minHeight="768"
creationComplete="creationCompleteHandler()">
<fx:Script>
<![CDATA[
private var callbackName:String="";
protected function creationCompleteHandler():void
{
callbackName = ( parameters["callback"] != null ) ?
parameters["callback"] : "itemSelected";
}
private function onDoubleClick(event:Event):void
{
ExternalInterface.call(callbackName, list.selectedItem);
}
]]>
</fx:Script>
<s:List id="list" width="300"
doubleClick="onDoubleClick(event);"
doubleClickEnabled="true">
<s:dataProvider>
<s:ArrayCollection>
<fx:String>Apples</fx:String>
<fx:String>Oranges</fx:String>
<fx:String>Bananas</fx:String>
</s:ArrayCollection>
</s:dataProvider>
</s:List>
</s:Application>
另一个demo
html文件修改
var flashvars = {};// 传递参数 flashvars.callback=itemSelected;
function itemSelected( index, data )
{
alert( [ index, data ] );
}
[code="xml"]
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="1024" minHeight="768">
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
private var items:ArrayCollection =