亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Flex > 正文

Flex Javascript交互實現代碼

2024-09-12 17:51:14
字體:
來源:轉載
供稿:網友
關鍵字:ExternalInterface
所用類庫:SWFObject
/**
* Flex調用Javascript函數
* @params functionName:String Javascript函數名稱
* @params ...params Javascript函數參數
* @return 返回Javascript函數的return內容
**/
ExternalInterface.call(functionName:String, ...params);
main.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.ExternalInterface;
import mx.utils.ObjectUtil;
/**
* 調用Java script 函數
* @params evt:MouseEvent
* @return void
**/
private function myClick(evt:MouseEvent):void {
var item:Object = new Object();
item.name = "Dante";
item.address = "Beijing";

var results:Object = ExternalInterface.call("myfunc",item);
//results為myfunc函數返回的對象
trace(ObjectUtil.toString(results));
}
]]-->
</mx:Script>

<mx:Button label="Click me" click="myClick(event);"/>
</mx:Application>

index.html
復制代碼 代碼如下:

/**
* 被Flex調用的 myfunc函數
* @params item 對象
* @return results 返回一個對象給Flex
**/
function myfunc(item) {
alert(item.name+"--"+item.address);

//創建對象
var results = {};
results .name= "dante";
results .age = 23;
results .sex = "man";
return obj;
}

/**
* Javascript調用Flex函數
* @params functionName:String Javascript調用Flex函數名
* @params closure:Function Flex將要調用的函數
* @return void
**/
ExternalInterface.addCallback(functionName:String,closure:Function);
main.mxml
復制代碼 代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
    layout="absolute" initialize="initApp()">
<mx:Script>
    <!--[CDATA[
         import flash.external.ExternalInterface;
import mx.utils.ObjectUtil;
/**
* initApp
* @return void
**/
private function initApp():void {
//注冊列表
ExternalInterface.addCallback("saveD",saveData);

//HTML 與 FLEX交互
//params.flashvars = "xmlPath=hello&name=dante";
var item:Object = Application.application.parameters;
trace("xmlPath:"+item.xmlPath ,"name:" + item.name);
}
/**
* saveData
* @params item:Object java script 傳過來的參數
* @return void
**/
private function saveData(item:Object):void {
trace("javascript調用Flex函數成功!");
nameTxt.text = item.name;
}
    ]]-->
</mx:Script>
<mx:TextInput id="nameTxt"/>
</mx:Application>

index.html

HTML內嵌swf文件,我用的SWFObject,個人認為是一個很好的類庫,簡化了包含代碼。
注意 :javascript調用Flex的函數,必須要獲得swf的ID,可以通過document.getElementById(),也可以使用swfobject.getObjectById()。
復制代碼 代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh" lang="zh" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<script src="js/swfobject.js" src="js/swfobject.js" type="text/javascript"></script>
<title>SWFObject</title>
<script type="text/javascript" language="javascript"><!--
var flashvars = false;
var params = {};
params.flashvars = "xmlPath=hello&name=dante";
var attributes = {};
//ID,也就是swf的ID,這個ID很重要,通過它調用flex的方法
attributes.id = "swf01";
 
//內嵌swf文件,這個embedSWF方法,我在最后的補充會說下
swfobject.embedSWF("swf/main.swf","myPanel","300","200","9.0.0","swf/expressInstall.swf",flashvars,params,attributes);
/**
* 調用Flex函數
* @return void
**/
function callFlex(item) {
//通過ID獲得swf,也可以使用document.getElementById();
//var swf = document.getElementById("swf01");
var swf = swfobject.getObjectById("swf01");
var item = {};
item.name = document.getElementById("nameTxt").value;
//調用Flex函數,傳參item:Object
swf.saveD(item);
}
// --></script>
</head>
<body>
<center>
<div id="myPanel">Flex content</div>
<table>
<tr>
<td>Name</td>
<td><input type="text" id="nameTxt"/></td>
</tr>
<tr>
<td colspan="2">
<a href="javascript:callFlex();" href="javascript:callFlex();">Call Flex</a>
</td>
</tr>
</table>
</center>
</body>
</html>

OK,兩種交互的方式已經告訴大家了,快試試吧。
SWFObject使用補充:
swfobject.embedSWF()
swfobject.getObjectById("swfID")
swfobject.removeSWF("swfID")
一.swfobject.embedSWF:
內嵌swf文件,這個函數的參數比較多swfobject.embedSWF(swfUrl, id, width, height, version,expressInstallSwfurl, flashvars,params, attributes),各個參數具體功能如下:
swfUrl(String,必須的)指定SWF的URL。
id(String,必須的)指定將會被Flash內容替換的HTML元素(包含你的替換內容)的id。
width(String,必須的)指定SWF的寬。
height(String,必須的)指定SWF的高。
version(String,必須的)指定你發布的SWF對應的Flash Player版本(格式為:major.minor.release)。
expressInstallSwfurl(String,可選的)指定express install SWF的URL并激活Adobe express install。
flashvars(String,可選的)用name:value對指定你的flashvars。
params(String,可選的)用name:value對指定你的嵌套object元素的params。
attributes(String,可選的)用name:value對指定object的屬性。
注意 :在不破壞參數順序的情況下,你可以忽略可選參數。如果你不想使用一個可選參數,但是會使用后面的一個可選參數,你可以簡單的傳入false作為參數的值。對flashvars、params和 attributes這些JavaScript對象來說,你也可以相應的傳入一個空對象{}。
二.swfobject.getObjectById("swfId")
通過swfid獲得swf對象,通過該對象可調用flex函數。
三.swfobject.removeSWF("swfId")
通過swfId刪除swf。
注意 :刪除swf這里需要提醒下,因為embedSWF是替換標簽,而不是填充。比如上面的例子<div id="myPanel">Flex content</div>,如果執行了swfobject.removeSWF后,想重新添加SWF必須要重新創建<div id="myPanel">或者更改embedSWF的第二個參數更改替換新的標簽ID。因為在這里SWF替換了調了<div>
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久九九国产精品怡红院| 色悠久久久久综合先锋影音下载| 日韩一区二区欧美| 91精品成人久久| 色婷婷**av毛片一区| 国产精品日韩av| 亚洲精品99久久久久中文字幕| 亚洲美女性视频| 欧美亚洲一区在线| 欧美激情精品久久久| 国产精品欧美风情| 久久久精品一区| 亚洲毛茸茸少妇高潮呻吟| 久久精品视频网站| 91在线观看免费网站| 中文字幕在线视频日韩| 久久久精品久久久| 国产精品日韩欧美大师| 最新亚洲国产精品| 性欧美亚洲xxxx乳在线观看| 懂色av中文一区二区三区天美| 777国产偷窥盗摄精品视频| 久久久久久久久久亚洲| 欧美大尺度激情区在线播放| 久久久精品日本| 国产香蕉一区二区三区在线视频| 丝袜情趣国产精品| 国产亚洲精品美女久久久久| 亚洲美女精品成人在线视频| 国产精品久久久久久久久久ktv| 成人黄色av播放免费| 国产成人精品综合久久久| 欧美精品一区在线播放| 久久精品国产2020观看福利| 亚洲欧美激情四射在线日| 最近中文字幕mv在线一区二区三区四区| 国产视频久久久久久久| 国产精品中文久久久久久久| 日韩精品欧美国产精品忘忧草| 这里只有精品久久| 精品久久久久久中文字幕一区奶水| 欧洲中文字幕国产精品| 一区二区三区无码高清视频| 亚洲国产成人在线视频| 人人澡人人澡人人看欧美| 日韩免费高清在线观看| 久久久久国产精品免费| 精品国产网站地址| 久久久久一本一区二区青青蜜月| 久久99视频免费| 欧美国产高跟鞋裸体秀xxxhd| 国产成人免费av| 欧美一级淫片videoshd| 欧美精品在线播放| 欧美又大粗又爽又黄大片视频| 国产精品一区久久久| 亚洲国产精品中文| 成人国产在线激情| 欧洲成人在线视频| 日韩av在线不卡| 91理论片午午论夜理片久久| 久久精品国产亚洲精品2020| 亚洲黄色www| 国产91在线播放精品91| 日韩精品在线观看视频| 精品久久久久久久中文字幕| 亚洲成人aaa| 久久精品99久久香蕉国产色戒| 欧美综合在线第二页| 精品性高朝久久久久久久| 亚洲天堂网在线观看| 91麻豆国产精品| 亚洲精品视频久久| 国产福利视频一区| 欧美国产日产韩国视频| 97精品在线观看| 欧美性在线观看| 91麻豆桃色免费看| 欧美日韩国产中文精品字幕自在自线| 久久精品亚洲一区| 成人av.网址在线网站| 欧美亚洲另类制服自拍| 久久伊人精品天天| 国内自拍欧美激情| 精品国偷自产在线视频| 高潮白浆女日韩av免费看| 国产精品成人aaaaa网站| 欧美激情在线视频二区| 中文字幕一区二区精品| 亚洲国内精品视频| 夜夜嗨av色综合久久久综合网| 欧美激情精品久久久久| 欧美一性一乱一交一视频| 亚洲va欧美va国产综合剧情| 欧美日韩在线观看视频| 日本高清视频精品| 91网在线免费观看| 狠狠综合久久av一区二区小说| 国产精品美腿一区在线看| 中文字幕欧美精品日韩中文字幕| 精品福利樱桃av导航| 国产欧美久久一区二区| 欧美性猛交视频| 日韩中文娱乐网| 国产精品在线看| 亚洲国产精品va在线| 国产日韩精品视频| 国产精品丝袜久久久久久高清| 日韩精品免费在线视频| 久久免费少妇高潮久久精品99| 日本高清+成人网在线观看| 亚洲美女在线视频| 国产精品扒开腿做爽爽爽男男| 国产免费久久av| 国产精品男人的天堂| 欧美亚洲一区在线| 中文字幕在线精品| 亚洲男人天天操| 久久久噜噜噜久噜久久| 亚洲韩国欧洲国产日产av| 亚洲综合精品伊人久久| 亚洲天堂av在线免费观看| 欧美专区第一页| 欧美高清激情视频| 都市激情亚洲色图| 欧美另类高清videos| 欧美日韩ab片| 亚洲精品国产欧美| 久久久久国产精品www| 亚洲精品久久7777777| 日韩中文在线中文网在线观看| 国产精品看片资源| 日韩中文字幕视频| 精品久久久久久久久久ntr影视| 久久视频在线免费观看| 韩国日本不卡在线| 欧美激情亚洲精品| zzijzzij亚洲日本成熟少妇| 永久免费精品影视网站| 国语自产偷拍精品视频偷| 精品偷拍各种wc美女嘘嘘| 成人高h视频在线| 国产91对白在线播放| 亚洲香蕉成人av网站在线观看| 免费不卡在线观看av| 91啪国产在线| 成人免费在线视频网址| 欧美性videos高清精品| 亚洲一级黄色片| 亚洲国产精品久久久久| 中文字幕欧美国内| 日韩av影视综合网| 日韩av快播网址| 91在线视频成人| 久久久精品美女| 精品中文字幕在线观看| 国产情人节一区| 国产91免费看片| 国产九九精品视频| 91人成网站www| 国产成人av在线播放| 国产97在线视频| 久久久久久欧美| 裸体女人亚洲精品一区|