- 浏览: 13730894 次
- 性别:
- 来自: 洛杉矶
文章分类
- 全部博客 (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 17737在线视频一般都是基 ... -
Scrolling Dynamically Loaded Text (as2)
2010-07-02 05:04 1962One quest ... -
flashAndPHP 简单交互
2010-06-17 01:53 1962第一章: flash,php 和 mysql ... -
交互动画按钮
2010-06-16 23:44 3725交互动画按钮 按钮元件是 Flash 的基本 ... -
引导路径动画 (2)
2010-06-16 23:41 18014.实例2——海底世界 ... -
引导路径动画 (1)
2010-06-16 23:31 3561引导路径动画(1) 在前面几节里,我们已经给大家介 ... -
动画基础
2010-06-16 23:22 1631动画的舞台结构及道具组合(1) 动画是一种动态 ... -
逐帧动画与夸张表情动画
2010-06-16 23:18 6479夸张表情动画的制作(1) (转之ET动画学堂) ... -
形状补间动画
2010-06-16 23:15 5481形状补间动画(1) ... -
逐帧动画与人运动动画制作
2010-06-16 23:11 5041人走路动画制作 ... -
动作补间动画
2010-06-16 23:07 4667动作补间动画(1) ... -
遮罩动画
2010-06-16 22:55 3576遮罩动画(1) ... -
Popup window ActionScript3 VS ActionScript2
2010-06-09 04:17 2666A common ... -
加载loader (How to Load External Images in Actionscript 3.0)
2010-05-28 02:18 1850Using the flash.display.Lo ... -
元件变色 change movieclip's color
2010-05-28 01:34 1906// This line defines a varia ... -
Flash AS3获取PHP数据(ActionScript3 + php + email)送ActionScript2
2010-04-23 21:11 5834一,AS3部分[下载 ] package { ... -
flex与flash元件交互
2010-01-30 04:31 1924前一段时间发了flex与JavaScript的数据交互 ,现 ... -
FLEX里的CSS样式设置教材
2010-01-29 00:38 2403FLEX3中应用 CSS完全详解 ... -
flex 扇形菜单
2010-01-29 00:27 9225在继 auzn经典Flex教程–KingnareStyle ... -
flex 画线
2010-01-29 00:23 3539实例1: <?xml version=" ...
相关推荐
通过分析这些文件,我们可以深入理解Flex和JavaScript交互的细节,例如数据传递方式、错误处理机制、安全性考虑等。 总的来说,Flex和JavaScript的交互是Web开发中的关键技术,它使我们能够利用Flex的强大图形和...
- Ajax(Asynchronous JavaScript and XML)非同步JavaScript和XML,允许在不刷新整个页面的情况下与服务器交换数据并更新部分网页内容。在Flex中,我们可以使用URLLoader类来实现类似Ajax的效果,发送异步HTTP请求...
### Flex与Ajax交互、Flex与JavaScript交互 #### 一、引言 随着Web技术的发展,Flex作为一种基于Adobe Flash平台的应用开发框架,在企业级应用中曾经非常流行。它提供了丰富的用户界面构建工具,并能够与服务器端...
Flex与JavaScript交互是一种常见的技术,它允许在Adobe Flex(基于ActionScript 3的富互联网应用程序框架)和网页中的JavaScript之间进行通信。这种交互性对于构建混合型应用,特别是在需要利用浏览器内核特性的Web...
### Flex与JavaScript交互详解 #### 一、引言 随着Web技术的发展,不同语言之间的通信变得尤为重要。在Flex与HTML的结合中,Flex通常作为富客户端应用,而JavaScript则负责处理网页逻辑。为了实现二者之间的无缝...
`IFrame.as`可能定义了一个IFrame对象,包含了初始化、加载URL、与JavaScript交互等功能。而`IFrameExternalCalls.as`可能包含了一系列与外部JavaScript进行交互的方法,如添加回调、触发事件等。 在实际应用中,...
Flex与JavaScript交互是Web开发中的一个重要技术,它允许在Adobe Flash Player或Adobe AIR环境中运行的Flex应用程序与HTML页面中的JavaScript代码进行通信。这种交互性极大地扩展了富互联网应用(RIA)的功能,使得...
### Flex与JavaScript交互详解 #### 一、在JavaScript中调用Flex方法 在Flex与JavaScript进行交互时,可以通过`ExternalInterface`实现从JavaScript调用Flex中的方法。这主要是通过向Flex应用注册特定的公共方法来...
在实现Flex与JavaScript交互时,你需要: 1. 在Flex端,使用`ExternalInterface.addCallback()`方法注册一个可供JavaScript调用的函数。 2. 在JavaScript端,通过Flash对象(通常是`swfObject`)来调用这个注册的...
### JavaScript与Flex交互知识点 #### 一、简介 在Web开发领域中,JavaScript与Flex的交互是一个非常实用且重要的技术组合。Adobe Flex是一种用于构建和部署丰富的互联网应用程序(RIA)的强大框架,它支持多种...
Flex3与JavaScript之间的交互验证是Web开发中的一个重要概念,它允许Adobe Flex应用程序(基于ActionScript 3)与网页上的JavaScript代码进行通信。这种交互性极大地增强了富互联网应用(RIA)的功能,使得Flex组件...
Flex与Servlet之间的数据交互是JavaWeb开发中的一个重要环节,它涉及到客户端富互联网应用程序(RIA)与服务器端数据处理的协同工作。Flex作为一个基于Adobe Flash Player的前端开发框架,主要用于创建具有丰富用户...
Flex与JavaScript交互是Web开发中的一个重要技术,它允许在Adobe Flex应用和HTML页面之间进行数据交换和功能调用。在本示例中,我们将深入探讨如何实现这种交互,并通过具体的步骤来理解其工作原理。 首先,Flex是...
这简化了UI与数据模型之间的同步工作。 2. Model-View-Controller(MVC):FLEX鼓励使用MVC设计模式,分离业务逻辑、视图和数据模型。例如,Bindable注解可以标记可观察的属性,当这些属性变化时,视图会自动更新。...
Flex与JavaScript的交互主要依赖于ExternalInterface,它使得ActionScript和JavaScript能够互相调用对方的函数,实现数据交换。这个过程涉及了函数注册、调用以及跨域和兼容性的处理。通过这样的交互,开发者可以...
标题中的“Flex与JavaScript相互调用例子”是指在Adobe Flex应用程序中如何与JavaScript进行交互的实践示例。Flex是一种基于ActionScript和MXML的开源框架,用于构建富互联网应用程序(RIA)。JavaScript则是一种...
6. **数据共享**:数据交换是Flex和JavaScript交互的重要部分。通过 ExternalInterface,可以将JSON、XML或其他数据格式在两者之间传递,实现数据的共享和同步。 7. **性能优化**:在大量交互时,需要注意性能问题...
标题中的"C#与Flex交互"指的是在开发过程中,使用C#作为后端处理逻辑,而Flex作为前端用户界面,两者之间进行数据和功能的通信。Flex是一种基于Adobe AIR和Flash Player运行时的开源框架,主要用于构建富互联网应用...
1. **跨域策略文件**:由于Flash Player的安全限制,Flex应用在与JavaScript交互前需要加载一个跨域策略文件,允许它与不同源的JavaScript进行通信。这个文件通常命名为crossdomain.xml,放置在服务器的根目录下。 ...