- 浏览: 13641762 次
- 性别:
- 来自: 洛杉矶
文章分类
- 全部博客 (1994)
- Php / Pear / Mysql / Node.js (378)
- Javascript /Jquery / Bootstrap / Web (435)
- Phone / IOS / Objective-C / Swift (137)
- Ubuntu / Mac / Github / Aptana / Nginx / Shell / Linux (335)
- Perl / Koha / Ruby / Markdown (8)
- Java / Jsp (12)
- Python 2 / Wxpython (25)
- Codeigniter / CakePHP (32)
- Div / Css / XML / HTML5 (179)
- WP / Joomla! / Magento / Shopify / Drupal / Moodle / Zimbra (275)
- Apache / VPN / Software (31)
- AS3.0/2.0 / Flex / Flash (45)
- Smarty (6)
- SEO (24)
- Google / Facebook / Pinterest / SNS (80)
- Tools (22)
最新评论
-
1455975567:
xuezhongyu01 写道wocan23 写道我想问下那个 ...
Mysql: LBS实现查找附近的人 (两经纬度之间的距离) -
xuezhongyu01:
wocan23 写道我想问下那个111.1是怎么得来的我也看不 ...
Mysql: LBS实现查找附近的人 (两经纬度之间的距离) -
18335864773:
试试 pageoffice 在线打开 PDF 文件吧. pag ...
jquery在线预览PDF文件,打开PDF文件 -
青春依旧:
opacity: 0.5; 个人喜欢这种方式!关于其他css特 ...
css透明度的设置 (兼容所有浏览器) -
July01:
推荐用StratoIO打印控件,浏览器和系统的兼容性都很好,而 ...
搞定网页打印自动分页问题
上一篇发了 flex3 接受外部参数 ,但是后来想想,应该更进一步的了解 flex与JavaScript的数据交互。
第一种:
test4.swf 代码:
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="horizontal" horizontalAlign="left"> <mx:Script> <![CDATA[ import flash.external.ExternalInterface; private function myClick(evt:MouseEvent):void { var item:Object = new Object(); item.name = "Gideon"; item.address = "New York"; var results:Object = ExternalInterface.call("myfunc",item); //results为myfunc函数返回的对象 display.text = 'Song: ' + results.song + '\nSinger: ' + results.singer + '\nYear: ' + results.year; } ]]> </mx:Script> <mx:Button label="Click me" click="myClick(event);"/> <mx:TextArea id="display" height="70"/> </mx:Application>
html:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=euc-kr" /> <title>flex</title> <head> <script type="text/javascript"> function myfunc(item) { document.getElementById('ihere').innerHTML = 'My name is ' + item.name + ', and I live in ' + item.address + '.'; //创建对象 var results = new Object(); results.song= 'Come Together !'; results.singer = 'MJ'; results.year = '1995'; return results; } </script> </head> <body> <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="300" height="150"> <param name="allowScriptAccess" value="always"> <param name="movie" value="test4.swf"> <param name="allowFullScreen" value="true"></param> <param name="quality" value="high"> <param name="bgcolor" value="#ffffff"> <PARAM name="wmode" value="transparent"> <embed src="test4.swf" quality="high" wmode="transparent" bgcolor="#ffffff" width="300" height="150" allowScriptAccess="always" allowfullscreen="true" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> </object> <br> Output: <div id="ihere"></div> </body> </html>
第二种:
test4.swf 代码
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="horizontal" horizontalAlign="center" initialize="initApp()"> <mx:Script> <![CDATA[ import flash.external.ExternalInterface; /** * initApp * @return void **/ private function initApp():void { //注册列表 ExternalInterface.addCallback('backFun',callBack); //HTML 与 FLEX交互 //params.flashvars = "xmlPath=hello&name=dante"; var item:Object = Application.application.parameters; display.text = 'playname:' + item.playname + '\nvideoname:' + item.videoname + '\nwear:' + item.wear; } /** * saveData * @params item:Object java script 传过来的参数 * @return void **/ private function callBack(item:Object):void { nameTxt.text = item.name; } ]]> </mx:Script> <mx:VBox> <mx:HBox> <mx:Label text="Callback"/> <mx:TextInput id="nameTxt"/> </mx:HBox> <mx:HBox> <mx:Label text="Geturl"/> <mx:TextArea id="display" height="70"/> </mx:HBox> </mx:VBox> </mx:Application>
html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <script type="text/javascript" src="swfobject.js"></script> <script type="text/javascript"> var flashvars = { playname: "test4.swf", videoname: "my player", wear: "clothes" }; var params = { wmode: "transparent", bgcolor: "#ffffff", allowFullScreen: "true", allowScriptAccess: "always", quality: "high" }; var attributes = {}; attributes.id = "flashContent"; swfobject.embedSWF("test4.swf", "flashContent", "300", "150", "9.0.0", "expressInstall.swf", flashvars, params, attributes); function callFlex(item) { //通过ID获得swf,也可以使用document.getElementById(); //var swf = document.getElementById("flashContent"); var swf = swfobject.getObjectById("flashContent"); var item = {}; item.name = document.getElementById("nameTxt").value; //调用Flex函数,传参item:Object swf.backFun(item); } </script> </head> <body> <div id="flashContent"> <a href="http://www.adobe.com/go/getflashplayer"> <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /> </a> </div> <table> <tr> <td>Name</td> <td><input type="text" id="nameTxt"/></td> </tr> <tr> <td colspan="2"> <a href="javascript:callFlex();">Call Flex</a> </td> </tr> </table> </body> </html>
关于SWFObject,请参看 flex3 接受外部参数
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>
另附: Javascript 和 ActionScript3 的交互
需要这个包
import flash
.external.ExternalInterface;
这是一个静态类,主要用两个方法:
ExternalInterface.addCallback(给Javascript的接口,AS函数位置,AS函数名) ExternalInterface.call(Javascript函数名,传值)
AS给做一个接口,然后Flash就可以访问AS的接口,从而可以调用
AS的函数
ExternalInterface.addCallback("browse",this,upBrowse);
其中borwse是javascript
可以调用flash
的接口,upBrowse是AS的函数
ExternalInterface.call("upAllComplete",upCount);
这个是AS调用Javascript的接口
其中upAllComplete是Javascript的函数,upCount是需要传递的参数
废话少说,例子上。
这个是AS调JS
AS代码:
ExternalInterface.call("upAllComplete",upCount);
JS代码:
function upAllComplete(upData){ //upData是AS中的upCount传过来的值,可以是对象,数组,字符串 ,数字 alert(upData); }
这个是JS调用AS的(有点麻烦)
JS代码:
var movieName = "testcommand"; //testcommand是HTML中Object的id和name,name和id要一样,这个是考虑到浏览器兼容性 function thisMovie() { if (navigator.appName.indexOf ("Microsoft") !=-1) { return window[movieName]; } else { return document[movieName]; } } thisMovie().browse(toSwfData); //browse是swf函数upBrowse的映射名称
AS代码:
function upBrowse(jsData){ trace(jsData); } ExternalInterface.addCallback("browse",this,upBrowse); //映射upBrowse这个函数为接口browse
这个AS版本可以支持到Flash player
7(貌似),不过flash本身在浏览器就
提供一些接口,诸如:gotoAndPlay(),play(),stop()等等,这个用到的时候可以上网查一下。
发表评论
-
iPhone、iPad 如何播放网页调用优酷视频?
2013-09-26 14:30 17682在线视频一般都是基 ... -
Scrolling Dynamically Loaded Text (as2)
2010-07-02 05:04 1927One quest ... -
flashAndPHP 简单交互
2010-06-17 01:53 1930第一章: flash,php 和 mysql ... -
交互动画按钮
2010-06-16 23:44 3671交互动画按钮 按钮元件是 Flash 的基本 ... -
引导路径动画 (2)
2010-06-16 23:41 17574.实例2——海底世界 ... -
引导路径动画 (1)
2010-06-16 23:31 3513引导路径动画(1) 在前面几节里,我们已经给大家介 ... -
动画基础
2010-06-16 23:22 1578动画的舞台结构及道具组合(1) 动画是一种动态 ... -
逐帧动画与夸张表情动画
2010-06-16 23:18 6438夸张表情动画的制作(1) (转之ET动画学堂) ... -
形状补间动画
2010-06-16 23:15 5436形状补间动画(1) ... -
逐帧动画与人运动动画制作
2010-06-16 23:11 5000人走路动画制作 ... -
动作补间动画
2010-06-16 23:07 4625动作补间动画(1) ... -
遮罩动画
2010-06-16 22:55 3541遮罩动画(1) ... -
Popup window ActionScript3 VS ActionScript2
2010-06-09 04:17 2634A common ... -
加载loader (How to Load External Images in Actionscript 3.0)
2010-05-28 02:18 1813Using the flash.display.Lo ... -
元件变色 change movieclip's color
2010-05-28 01:34 1873// This line defines a varia ... -
Flash AS3获取PHP数据(ActionScript3 + php + email)送ActionScript2
2010-04-23 21:11 5792一,AS3部分[下载 ] package { ... -
flex与flash元件交互
2010-01-30 04:31 1892前一段时间发了flex与JavaScript的数据交互 ,现 ... -
FLEX里的CSS样式设置教材
2010-01-29 00:38 2356FLEX3中应用 CSS完全详解 ... -
flex 扇形菜单
2010-01-29 00:27 9185在继 auzn经典Flex教程–KingnareStyle ... -
flex 画线
2010-01-29 00:23 3496实例1: <?xml version=" ...
相关推荐
flex与ajax交互、flex与javascript交互
flex与javascript交互利用externalinterface.callback函数进行。
Flex与JavaScript交互实例,已测试过
flex和javascript交互.在Flex中可以用ExternalInterface来调用Flex的方法
Flex 与javascript交互、C#读写Cookie代码
自己总结的javascript与flex的交互还算详细
NULL 博文链接:https://fengzheng0603.iteye.com/blog/1513718
Flex3与javascript相互交互验证,可以供开始学习的人做个入门学习
actionscript与javascript交互
flex 和 javascript 交互 测通 flex 和 javascript 测通
Flex 和JavaScript 交互,并且可以传递参数。
与浏览器的通信能够让 你建立一个可以超越Flex 应用本身的应用程序。你可以连接到已有的地址,通过JavaScript 和其他应用程序通信,并且可以和浏览器的历史记录交互,作为开始。ExternalInterface 类 让你能够调用...
ASP中调用Flex,actionscript与javascript交互,将flex放置在特定的位置。
删除swf这里需要提醒下,因为embedSWF是替换标签,而不是填充。
如果一切正常,那么点击"与flash交互"的Ext按钮;如果一切正常,那么可以在Flash对象中看到“这是一个测试值!!!”;然后在对象中的“发送消息到JavaScript”按钮上面的文本域输入“到JavaScript中去”,然后点击...
接着剖析了Flex与Java的通信机制,以及Flex企业应用的客户端架构和服务器端架构;再接着详细讲解了BlazeDS框架的使用方法和工作原理,并通过迭代的方式完整地演示一个真实的Flex企业级应用的开发全过程,实战性极强...
@ twilio-labs / plugin-flex Twilio CLI插件可与进行交互该插件为添加了功能,以便在本地开发,构建和部署; 它使用 。要求安装Twilio CLI 通过npm或yarn : $ npm install -g twilio-cli$ yarn global add twilio-...
flex与JS的交互,简单的DEMO。用美图秀秀的上传和美化作为案例。功能演示详见新浪微博。
与操作系统剪贴板交互 23.12节.添加HTML内容 23.13节.在ActionScript和JavaScript之间跨脚本操作 23.14节.本地SQL数据库 23.15节.检测和监控网络连接 23.16节.检测用户是否在线 23.17节.创建系统托盘图标 第二十四章...
flexdashboard:用于R的简单交互式仪表板 使用可以将一组相关的数据可视化发布为仪表板。 支持多种组件,包括 ; 基本,晶格和网格图形; 表格数据量规和值箱; 和文字注释。 灵活且易于指定基于行和列的。 可以智能...