`
demojava
  • 浏览: 541117 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

flex javascript

 
阅读更多
1.Link to an External URL

<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()" />

2.简单的js调用 flex code
   ExternalInterface.call("alert", "foo");
   ExternalInterface.call("alert('foo')");
   ExternalInterface.call("function(){}");
   ExternalInterface.call("function(){alert('foo');}");
   ExternalInterface.call("function(){alert('foo'); alert('bar');}");
3.定义一个js函数的字符串
   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);
4.xml形式定义js函数
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!" );

5.获取flash的变量在
在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);


6.JavaScript callback with the alert
修改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 ] );
}

<?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 = 

  


  
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics