Flex JS 交互 传值(传参数)
老生常谈的话题了。
首先是转帖部分:
http://kingwind.blogbus.com/logs/44323315.html
先来看Flex调用JavaScript中的函数
FlexConnectJavaScript.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<!--[CDATA[
import flash.external.*;
public function invokeJavaScript():void
{
lblResult.text=ExternalInterface.call("returnTheName","huangxi";
}
]]-->
</mx:Script>
<mx:Button id="btnConnect" label="调用JavaScript" click="invokeJavaScript()" x="229" y="204"/>
<mx:Label id="lblResult" text="test" x="205" y="99" width="150" height="80"/>
</mx:Application>
FlexConnectJavaScript.html中<Script>加入
function returnTheName(a)
{
return "HUANGXI";
}
////////////////////////
小结
1.ExternalInterface.call("returnTheName","huangxi");其中第一个参数与JavaScript中的函数相同,第二个参数为传递参数
________________________________________________
首先呢,在HTML模板里面添加一个JS函数:${application}实际上就是object那个flex的id,只不过呢,flex的模板文件里面用这个字符代替了。恩。你换成id也一样。
function sendToActionScript(value) {
alert(value+"http://www.dc9.cn");
document.getElementById("${application}").sendToActionScript(value);
}
然后类,在flex里面添加一个启动注册钩子函数:这个在application initial的时候执行,前面的参数是js的函数名,后面参数是flex的函数名。
ExternalInterface.addCallback("sendToActionScript", receivedfromJavaScript);
然后类,在flex里面加入这个函数
private function receivedfromJavaScript(value:String):void {
mx.controls.Alert.show("JavaScript says: " + value + "\n");
}
然后类,你随便找个什么玩意儿触发一下就可以啦:
<mx:Label click="ExternalInterface.call('sendToActionScript', 'http://www.dc9.cn');" text="http://www.dc9.cn" buttonMode="true"
相关文档:
Flex是 RIA(rich internet applications,即富客户端)的一种技术实现,下面我们把它及其相关的知识与java做个简单的对照,由于个人水平有限,下面的比较仅供参考:
1.RIA vs 跨平台的编程技术
2.Flex vs java
3.flex framework vs jdk
4.flex buil ......
前言:
本项目主要是通过把地图切片嵌入swf,把切片坐标用Java数据打包,然后 在Flex项目内通过Java读取打包数据,通讯给Flex,最后把swf内的图片安放在对应位置来实大地图 拆分->打包->再现的过程。
1. swf图片打包代码 BitMapClass.as
package
{
import flash.display.Sprite;
public class BitM ......
·下面介绍Flex与.NET的WebService的数据通信知识点;包括连接WebService,远程调用WebService方法,给WebService方法传递参数等相关知识点。
<mx:WebServiceid="dataService"
wsdl="http://localhost/FlashFlex/DataWebService.asmx?wsdl"
useProxy="false">
<mx:ope ......
这样的一种情况:
使用Loader去load一个swf:
var fileURL:String = “assets/test.swf”
var swfLoader:Loader = new Loader();
swfLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, swfLoaded);
swfLoader.load(new URLRequest(fileURL));
function swfLoaded(evt:Event):void{
&n ......
Flex组件内置了处理拖拽事件的接口,有些控件已经实现了拖拽功能,比如List、DataGrid、Menu、
HorizontalList、 PrintDataGrid、TileList、Tree,在设置相关的拖拽属性后,它们都可以在相同类型的组
件之间利用鼠标来实现数据的转移。
allowDragSelection ......