前段时间选书,昨天到华师附近买了本《Flex3.0 RIA开发详解:基于ActionScript3.0实现》;本来还想买多本《ActionScript 3.0 Cookbook中文版》,发现有一份电子版的,而且《Flex3.0 RIA开发详解:基于ActionScript3.0实现》中也有相关ActionScript 3.0的介绍,就算了;先了解一下Flex,以后有需要再购买也不迟。
其实,我是不太愿意买书的,因为以前买了不少书,一些翻都没有翻过,一直都放着,不知是否成了虫蚁的盘中餐?特别是Java方面的书,估计有20本左右,至今也没有从书中获益多少!外文相关的书好似也有几本了。
去年底,在购书中心买了本《蓝海战略》,还没有看;前段时间跟朋友聊天的时候,他极力向我推荐这本书,现在是时候光顾一下这书了,以勉其他动物与我一起分享啦。
一、在JavaScript中调用Flex方法
在Flex中可以用ExternalInterface来调用Flex的方法,途径是
1.通过在Flex应用可调用方法列表中添加指定的公用方法。在Flex应用中通过调用addCallback()可以把一个方法添加到此列表中。addCallback将一个ActionScript的方法注册为一个JavaScript和VBScript可以调用的方法。
addCallback()函数的定义如下:
addCallback(function_name:String, closure:Function):void
function_name参数就是在Html页面中脚本调用的方法名。closure参数是要调用的本地方法,这个参数可以是一个方法也可以是对象实例。
举个例子:
<mx:Script>
import flash.external.*;
public function myFunc():Number {
return 42;
}
public function initApp():void {
ExternalInterface.addCallback("myFlexFunction",myFunc);
}
</mx:Script>
2.那么在Html页面中,先获得SWF对象的引用,也就是用<object .../>声明的Swf的Id属性,比如说是MyFlexApp。然后就可以用以下方式调用Flex中的方法。
<SCRIPT language='JavaScript' charset='utf-8'>
function callApp() {
var x = MyFlexApp.myFlexFunction();
alert(x);
}
</SCRIPT>
<button onclick="callApp()">Call App</button>
二、在Flex中调用 JavaScript
你 可以调用Html页面中的JavaScript,通过与JavaScript的交互,可以改变Style,调用远程方法。还可以将数据传递给Html页 面,处理后再返回给Flex,完成这样的功能主要有两种方法:ExternalInterface()和navigateToUrl()。
在Flex中调用JavaScript最简单的方法是使用ExternalInterface(),可以使用此API调用任意JavaScript,传递参数,获得返回值,如果调用失败,Flex抛出一个异常。
ExternalInterface封装了对浏览器支持的检查,可以用available属性来查看。
ExternalInterface的使用非常简单,语法如下:
flash.external.ExternalInterface.call(function_name: String[, arg1, ...]):Object;
参数function_name是要调用的JavaScript的函数名,后面的参数是JavaScript需要的参数。
举个例子说明如何调用JavaScript函数
Flex应用中,添加如下方法:
<mx:Script>
<?xml version="1.0" encoding="iso-8859-1"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
import flash.external.*;
public function callWrapper():void {
var f:String = "changeDocumentTitle";
var m:String = ExternalInterface.call(f,"New Title");
trace(m);
}
</mx:Script>
<mx:Button label="Change Document Title" click="callWrapper()"/>
</mx:Application>
Html页面中有如下函数定义:
<SCRIPT LANGUAGE="JavaScript">
function changeDocumentTitle(a) {
window.document.title=a;
return "successful";
}
</SCRIPT>
原文:http://www.blogjava.net/oathleo/archive/2008/04/11/192140.html
前一段时间一直在忙项目,很多自己想做的事都没有认真做;过几天估计有时间做自己想做的事啦。在网上看了好几个用Flex实现的例子,发现Flex是一种很不错的技术,想多花些时间在这上面;2007网络视频的快速发展,2008年据说是RIA应用年。在China-pub上转了一下,发现现Flex方面的书籍比以前多了不少,但囿于是新入门,不知选择哪本书更适合?请购买过相关书籍的朋友给点较中肯建议。
我看好的暂时就以下几本,第一本主要是用来做参考的,第二、第三本是希望用来入门Flex的,不知哪一本会更好呢?
update:看了网上的相关评论后,初步选定“ Flex3.0 RIA开发详解:基于ActionScript3.0实现”与"ActionScript 3.0 Cookbook中文版"。
1、ActionScript 3.0 Cookbook中文版
目录如下:
前言. I
第1章:ActionScript基础 1
1.1 创建ActionScript工程 2
1.2 调整应用程序的属性 3
1.3 ActionScript代码要放在哪里 4
1.4 如何追踪消息 8
1.5 处理事件 10
1.6 响应鼠标和按键事件 12
1.7 使用数学运算符 14
1.8 检查相等性或比较值 16
1.9 依条件采取动作 19
1.10 进行复杂的条件测试 24
1.11 多次重复运算 26
1.12 随时间变化而重复任务 30
1.13 创建可重用的代码 32
1.14 让方法概括化以提升可重用性 34
1.15 退出方法 36
1.16 取得方法的结果 37
1.17 处理错误 38
......
完整介绍
2、Flex3.0 RIA开发详解:基于ActionScript3.0实现
目录如下:
第一篇 基础篇.
第1章 Flex概述 2
1.1 Flex简介 2
1.1.1 Flex的技术特点 3
1.1.2 Flex 3.0的新特性 5
1.2 Flex Builder 3的下载与安装 6
1.2.1 安装Flex Builder 3的系统要求 7
1.2.2 下载Flex Builder 3 Beta 1 7
1.2.3 Flex Builder 3 Beta 1的安装 9
1.3 Flex基础结构MXML介绍 11
1.4 建立第一个Flex 3.0程序 12
1.5 编译与运行第一个Flex 3.0程序 15
1.6 小结 16
第2章 熟悉开发环境Flex Builder 3 17
2.1 熟悉Flex Builder 3工作区 17
2.2.1 Perspectives(透视) 17
2.2.2 Editors(编辑器) 18
2.2.3 Views(视图) 20
2.2 编译与运行Flex 3.0程序详解 21
......
完整介绍
3、Flash/Flex ActionScript 3.0交互式开发详解:语法基础、典型应用、视频网站实战
目录如下:
第 1章 ActionScript 3.0语言. 1
1.1 关于ActionScript 3.0 1
1.1.1 ActionScript的作用 1
1.1.2 ActionScript的版本 2
1.2 开发环境——Flash CS3环境配置 3
1.2.1 安装Flash CS3 3
1.2.2 配置Flash CS3 6
1.2.3 Flash下的第一个示例 7
1.2.4 Flash下的代码调试 8
1.3 开发环境——Flex Builder环境搭建 9
1.3.1 安装Flex Builder 9
1.3.2 配置Flex Builder 13
1.3.3 Flex下的第一个例子 14
第 2章 变量和常量 17
2.1 声明变量 17
2.2 给变量赋值 17
2.3 变量的作用域 19
2.4 声明常量 20
第 3章 数据类型 22
......
完整介绍
我喜欢任何一种可以让我的工作更有生产率和效率的新技术。但是在新技术的接受上,我绝对不是个冒进者也不盲目跟风,而是试过之后再选择。
最近一年来,我从C#的世界中走出,从后台系统、商业逻辑等走到前端技术和用户界面系统。我看了看XHTML,CSS和Javascript,这么多年来每次我都会失望:这些技术看起来是那么地相似感觉一样,不论它们是用什么IDE、代码执行,也不论它们在不同的浏览器里看起来有多么的不一样。
Silverlight
Silverlight被称为是“C#的Flash杀手”,结果证明它是一个很有趣的技术,看起来也确实像是“Flash杀手”。给浏览器下载一个plugin,就可以马上看到所谓的“富互联网应用”,包括有声录影(Movie Clips)、矢量图形(Vector Graphics)等。
Silverlight使用的是一种基于XML的语言叫XAML,所有代码可以在.NET上实现,那意味着C#代码可以编译和运行在浏览器内的CLR。非常酷。而且更好的是,它不仅可运行于IE浏览器,而且可运行于Firefox甚至Safari。功能差不多的运行在Linux上的版本称为 Moonlight,也是来自于微软的支持。
以下是我使用Silverlight的一些看法:
非常有趣且易学;
看起来像是一个真正的开发工具,因为它基于VS2008、XAML和C#(或者VB);
IE 7 的plugin比较费时间,无论是1.0还是1.1 alpha版;
1.1 alpha版的Codebase和documentation远不够完善,期待中;
还有许多我希望能够被包含的特征以及预告中透露的,我也在期待。
Silverlight是仍在完善中的一个东西,预计在2008年第一季度推出新beta即 Silverlight 2.0,届时将包含许多特性。在我看来,Silverlight将在2008年夏天的时候成为一个“真正的”产品,问题是:它会成为Flash 杀手吗?随着Flash新版本的不断出现,时间将揭晓答案。
Flex
Flex是Adobe公司推出的RIA开发工具。使用Flex(version 3 beta2)可以通过一个开源的SDK来编译应用,也可以使用Flex Builder——个基于Eclipse的很迷人的IDE,最终的结果是一个SWF-file,可以运行于任何浏览器的Flash 播放器,或者一个使用Adobe Integrated Runtime(AIR)的桌面应用。完全跨平台。
Flex是基于MXML,跟XAML疑似相似。用ActionScript 3(AS3)写代码,AS3是一个基于ECMAXcript的脚本语言。我以前在哪儿听到过ECMAXcript?哦对了,是Javascript。
但是Flex证明它并不差,我并不会在这里一一列出它的性能。而且AS3和Flex非常地简单,可以很快地、没有痛苦地编写复杂的RIA。而且我可以告诉你,关于你听到的Flex的性能绝对不是空话,而且它的开发团队已经研发Flex很长时间了。不仅仅跟一个简单的web服务结合?使用一个接口跟某人直接交流?导入和处理音频、视频?都有可能。
胜者是?
或许Silverlight真的会成为Flash杀手——但我不认为是一夜之间的事情。根据Adobe的数据,Flash播放器占据97%的桌面电脑而且正在成为移动设备的领先平台,Silverlight至少要12—24个月才能达到这种程度。
尽管我是微软技术的开发者,但我认为如果只图简单,Flex是RIA开发的选择。
原文链接:http://blog.topholt.com/2007/12/05/ria-wars-silverlight-vs-flex/ (csdn)
今天下午在Adobe的官方网站上才看到了Flex开源的消息:.jpg)
Adobe这次开源 Flex,事实上是“早有预谋”的。早在 labs.adobe.com 建设的时候,Flex 团队就有将 Flex 开源的计划,并且当时也将 Flex-Ajax-Bridge 在 GPL 协议下开源了。
而这次 Flex 开源和以前不同,Adobe 会将几乎整个Flex平台组件在 Mozilla Public License 下发布,包括以下部分:
* Flex 编译器;
* Flex 命令行调试工具;
* 源码查看工具;
* 测试框架;
* Flex 核心组件库(包括 Apollo 组件);
* 封装脚本;
* Flex-Ajax Bridge(将会改用 MPL 协议发布);
更多的细节内容可以参考官方 Wiki。
Adobe Flex 这次开源,可以说是意义深远。首先,这次开源对于 Adobe 和开发者来说都是双赢的。通过开源,Flex 开发者可以通过阅读研究 Flex 源码,更深刻的理解 Flex 并进一步增强它,从而在 Flex 平台上创造出更多更出色的应用;而对于 Adobe 来说,开源 Flex 开发者的加入,不仅可以使得 Flex 利用最小的成本得到最佳的完善和发展,同时由于开源的刺激,势必会为 Flex 带来更多的开发者,这对于一个平台的普及是非常有意义的。
开源界的不断发展,使得越来越多的商业公司看到了它的美好前景。Google、IBM、Oracle 等巨头纷纷在开源领域获利,作为应用软件巨头 Adobe 自然也不会错过。Flex 的开源可以看作是 Adobe 迈出的第一步。同时,Adobe 选择开源的产品始终围绕着 Flash 应用领域,而且选择的协议为 Mozilla Public License,使我们看到了 Adobe 想进一步掌控下一代互联网标准,甚至桌面应用平台的野心。试想搭载着 Adobe 种种绚丽技术的 Firefox,微软的 IE+SilverLight 也会吃不消吧。盖茨加油吧,呵呵。(csdn)
重要通知:受Adobe LiveCycle ES发布的影响, Adobe Flex Data Services 2 服务器产品已以被重贴牌为LiveCycle ES的一个分离组件。这篇文章是基于 Flex Data Services 写的,但是同样适用于 LiveCycle Data Services ES。任何提到或使用 ColdFusion 和 Flex Data Services 的地方不兼容于 LiveCycle Data Services ES。要了解 LiveCycle Data Services ES 的新功能,请阅读 LiveCycle 开发者中心的指南和 Adobe LiveCycle Data Services ES。 2005 年10月,Macromedia(现在的Adobe)为开发者社区提供了Adobe?? Flex?? 2 的第一个预览版本 -开发工具,库和运行时库服务的一套全新阵容,它允许开发者利用 Flash?? Player 运行时库的优点,随时随地创建和部署富互联网应用。从那时起,大量的开发者开始使用 Flex 开发应用程序,并向我们提供反馈。另外,Macromedia 成为 Adobe 的一部分,打开了改善网络应用程序未来机会的整个世界。
随着 Flex 2 的发布,我们骄傲的展示一下2005年10月到2006年6月之间的开发周期。通过组合一个直观的程序设计模型,一个功能强大的基于 Eclipse 的 IDE,一个设置丰富的基于 J2EE 的运行时库,我们相信,Flex 2 产品线将提供给当今开发者们开发可用跨平台富互联网应用程序最全面的解决方法。最近公布的定价结构,允许开发人员自由创建和部署多种应用,而无需在他们的 服务器上安装任何东西。最新在开源许可证下发面的技术比如 Flex-Ajax Bridge
和 Ajax Client for Flex Data Services
,允许开发者增量的添加 Flex 组件到存在的网站和应用程序上去,不管它们是基于静态 HTML 还是 Ajax 技术。