关于Sourcemate的介绍就不多说了,看这里 。
安装方式也很简单,打开FlashBuilder,选择Install a new software,然后输入插件的地址:
http://updates.elementriver.com/sourcemate/v1
安装后,修改Host文件,添加:
127.0.0.1 services.elementriver.com
然后重启Flash Builder,输入Sourcemate的序列号:
email:随便
序列号 :X777-C111-Z999-Y888
该插件是需要付费的,本文仅供学习和参考,如果您喜欢此软件,请支持正版。
Tags: sourcemate
Spring ActionScript对于Module开发有无支持?
一般在小规模的RIA应用中,所需的配置量也很少,我们直接写一个XML配置文件,一次性载入就可以了。但如果涉及到大规模应用,比如在Flex项目开发中,会将若干模块做成Flex Module来实现模块的分离,这样因为主应用和Module的加载时间不一致,势必导致我们需要为他们各自编写独立的XML配置(这种情况也适用于我们开发Flash项目,分为多个SWF进行加载)。那么Spring ActionScript对此有无支持呢?答案是肯定的,Spring ActionScript作为一个成熟的解决方案,也考虑到了这个因素,这也是Spring ActionScript在社区大受欢迎的原因。
使用Application上下文和Module上下文
假设这样一个情景,有两个上下文。一个是在主应用中创建的,另一个则是在需要延迟加载的模块中创建的。第一个我们称之为Application上下文,另一个称之为Module上下文。
现在假设Application上下文的配置如下:
Module上下文的配置如下:
当Module上下文创建的时候,我们设置Application上下文为它的父级(parent):
var moduleContext:XMLApplicationContext = new XMLApplicationContext("module-context.xml");
moduleContext.parent = applicationContext;
这样做的结果就是,当你在Application上下文中请求一个id是myOtherObject的对象,你会得到一个类型是com.myclasses.MyOtherObject的实例。然而,当你是在Module上下文中请求同一个对象,你会得到一个类型是com.myclasses.moduleimplementations.MyOtherObject的实例。
下面,我们稍微更改一下两个配置,添加一些依赖并展示如何在Module上下文中覆写这些依赖。
Application上下文的配置:
现在从Application上下文中请求id是myOtherObject的对象,你会得到一个类型是com.myclasses.MyOtherObject的实例,和它的依赖(类型是com.dependencies.MyDependency).然后我们更改Module上下文的配置如下:
当我们再次从Module上下文中请求id是myOtherObject的对象,我们会得到类型是com.myclasses.MyOtherObject的实例,它的依赖则变成了类型是com.moduledependencies.MyDependency的一个实例。
注意:像这样的重写引用对象,前提条件是对象的scoped属性设置为prototype。
重写外部属性值也将遵循同样的逻辑(即更改value而不是ref),所以你是可以更改从父级的上下文中获得的属性的。
如果Application上下文中有一个外部配置的属性叫做prop1,你可以在Module上下文中引用:
在使用IoC框架,比如Spring ActionScript的时候,因为代码中没有对类的引用,Flex并不会自动将所需的类编译到主SWF中去,这就会产生一个问题,即运行时找不到所需 的类,这也是困惑Spring ActionScript新手的一个问题。那么如何解决呢,以下内容译自Spring ActionScript的官方文档。
1.在你的代码中任何位置加入对类的引用:
{
Myclass1, Myclass2
}
2.创建变量或数组加入对类的引用:
private var _includeClass:Array = [Myclass1,Myclass2];
3.使用Frame metadata:
package com.myclasses
{
[Frame(extraClass="com.myclasses.Myclass1")]
[Frame(extraClass="com.myclasses.Myclass2")]
public class MyMainClass
4.使用resource bundle:
在你的项目中创建一个名为 classreferences.properties 的文件并添加你的类进入,比如:
Class1 = ClassReference("com.myclasses.Myclass1")
Class2 = ClassReference("com.myclasses.Myclass2")
然后在你的代码中添加对资源的引用:
[ResourceBundle("classreferences")]
private var _classReferences:ResourceBundle;
5.使用ANT工具作为一个预加载器生成编译配置文件
6.使用Maven。你需要先点击这里下载mojo文件 ,然后打开运行”mvn install”将它加入到你的本地仓库。
全文已发表在RIAMeeting,请点击这里查看:
http://www.riameeting.com/node/700
在RIAMeeting之前的一篇文章中介绍过Merapi,如果你还不太了解,请点击这里 。
简单说来,Merapi 就是基于Socket沟通Flex/Flash/AIR项目与Java的桥梁,这样我们就可以通过Java扩展原先Flash平台所不具备的功能,比如与系统深层次的整合,调取电脑外设等等,在上面那篇文章中对Merapi的工作机制有详细的介绍,这里不再阐述。
现在我们通过一个例子,来直观的体验一下Merapi所带来的便捷(目前仍是Beta版,还是有这样那样的问题,对Byte的支持似乎也不够好,字 符串完全没有问题)。这个例子里我们直接使用Flex建立的Web项目来进行(当然你也可以使用AIR),通过一个Java应用截取系统的屏幕,并返回给 Flex端显示。
步骤一:配置
首先是工具,因为要写两个项目(Flex项目和Java项目),准备好你喜欢的IDE吧,我这里是Flash Builder和MyEclipse。
然后要下载Merapi的类库,下载地址在:
http://code.google.com/p/merapi/source/browse/#svn/binaries/merapi-core-0.1.8-beta
注意还要下载Java项目依赖的Jar包,地址在:
http://code.google.com/p/merapi/source/browse/#svn/trunk/java/merapi-core/libs%3Fstate%3Dclosed
步骤二:建立Java项目
代码过程参见:
http://www.riameeting.com/node/673
步骤四:运行
首先将我们刚才建立的Java项目Run起来,然后Run Flex项目,在浏览器显示的Flash界面上点击鼠标,不出意外的话,可以看到自己屏幕的截图。
图1:运行效果,点击看大图
谨以此例抛砖引玉,欢迎大家讨论!
Tags: Merapi
前几天Adobe公布了针对移动平台的Flash Player 10.1 ,这个消息想必大家都知道了(如果你还不 了解Flash Player 10.1,请参阅这篇文章:Flash Player 10.1为移动设备带来了什么 )。这样无论是对传统的桌面Flash应用开发人员,还是移动开发人员,都无疑多了一个选择,即: 基于AS3和现有Flash资源积累(素材,第三方类库,开发经验等等),快速开发或移植具备丰富表现力的手机应用。
那么,一个传统的桌面Flash应用开发人员如果进入移动开发领域,应该注意什么事项?或者说,虽然都是基于Flash Player 10.1的开发,但运行于桌面和运行于移动设备的区别在哪里?下面笔者将根据自己的经验和心得写出几点总结,藉以抛砖引玉,欢迎大家讨论。
总体而言,我们在开发针对Flash Player 10.1的移动应用过程中,以往的代码经验和架构还可以继续沿用,没有什么不同,只是要针对移动平台的特殊性,从UI设计,交互方式,和性能优化方面需要 做出相关的调整。
完成案例:m.adobe.com
经验分享:http://www.riameeting.com/node/664
其实Adobe原先在Max大会上就通过一个演示表达了态度,支持HTML5,这次就更明确了。
网络上的HTML5和Flash之争没有什么意义,我觉得不应该只用竞争的眼光看待两者之间的关系,通过CS5或许会发现两者比较好的结合点。
以下内容摘自Jinni的博客 :
Adobe 的 CTO Kevin Lynch 在刚刚进行的 Google I/O 大会的 Keynote 上演示了 Adobe CS5 对 HTML5 的多种支持,同时 Adobe Labs 放出了 Dreamweaver CS5 的 HTML5 扩展包 。
通过该扩展包,DW CS5 将获得以下新特性:
多屏幕预览面板,适用于同时为不同设备开发 HTML 应用
支持对 HTML 5 新增的标签库的代码提示
支持对 CSS 3 代码提示
增加 Video 和 Audio 标签的实时预览
改进 CSS 3 实时预览效果
改进设计视图下对 HTML 5 新增标签的渲染效果
点击这里 下载。
详细说明:
http://labs.adobe.com/technologies/html5pack/
Tags: Flash CS5
这年头流行物理,先看看我搞的这个:结合Thinkpad APS技术和AIR2实现重力加速度监测
教程稍后会写在RIAMeeting.com 上
Tags: AIR
你是否正在关注AIR或者正在进行AIR开发,但苦于没有一本书籍指点迷津?网上的资源分散且杂乱让你无所适从?那么这本《AIR完整入门与开发实录》将带你进入AIR的殿堂。
AIR 一方面提供与Flash等量齐观的API,一方面拥抱市场上大批的UI框架,如何将这二者合二为一将对开发者的参考价值很大。教学第一,该书不是API文 档乏味的复述,并有大量的例子与视频教学,学习AIR起来就可达到事半功倍的效果。实际上,AIR横跨Flex与Ajax的解决方案已为许多项目所青睐, 甚至一些项目就是这两种方案混搭而成的。如果你想打造全方位的AIR的应用程序,又想轻松地透过视频、例子的学习,该书是您的首选!
本书全面讲解Adobe AIR(Adobe Integrated Runtime)技术知识体系和开发实践。
在RIA开发领域,AIR无疑是一个独特的、弥补Web和桌面鸿沟的一项新技术,如何将这项技术详尽地介绍给国内的开发者呢?这是让作者和编者都感 到身负重大责任的事情。所以我们推出这本“实例+讲解”的特色图书,希望更容易被读者接受。事实证明,在枯燥的学习过程中,只有精彩实例可以让读者更快地 学习,更有效率地进步。
本书主要通过详细的实例讲解,向读者介绍AIR的特性和开发技巧。通过阅读本书,读者会了解到AIR的优势,以及如何快速有效地开发AIR应用。
基于AIR不同的开发模式,本书可分为两部分。传统的HTML+Ajax开发人员可以重点阅读Ajax部分;Flash/Flex开发人员可以重点 阅读 Flash/Flex部分。本书将以这两种开发模式为主线,将读者引入AIR的开发殿堂。其中的Ajax部分重点介绍AIR开发与现有Ajax框架的无缝 整合;而Flash/Flex细分为Flash和Flex两个部分,讲解应用不同的开发环境开发AIR应用的技巧。
购书地址:
http://www.china-pub.com/196053
本书书友会地址:
http://www.riameeting.com/community/forumdisplay.php?fid=24&page=1
Tags: AIR
这是之前发布的中国地图Flash版的优化版,具备如下的功能:
按照省份划分行政区域,显示每个省份的详细信息(内容通过XML自定义)
支持HTML显示
支持点击省份,打开网页链接
支持事件监听(AS和JavaScript)
演示地址:
http://www.richbox.net/Files/demo.html
使用方式:
将这个Flash插入到网页中并配置相应的参数即可(需要设置地图的标题,和数据源的XML地址,如果你希望Flash回调你的JavaScript方法,请参见第三个参数的配置),推荐使用SWFObject,示例代码:
<script type="text/javascript">
function eventHandler(e) {
alert(e.value);
}
var s1 = new SWFObject("ChinaMap.swf","ply","600","500","10","#FFFFFF");
s1.addParam("allowscriptaccess","always");
s1.addVariable("title","中国地图");
s1.addVariable("xmlurl","d.xml");
s1.addVariable("jsHandler","eventHandler");
s1.write("container");
</script>
数据XML的配置示例:
http://www.richbox.net/Files/d.xml
你也可以将这个地图应用到你的Flash或Flex项目中,并可以监听地图点击的Event,代码示例:
public class ChinaMapDemo extends Sprite
{
public function ChinaMapDemo()
{
super();
var mapLoader:Loader = new Loader();
mapLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,init);
mapLoader.load(new URLRequest("ChinaMap.swf"));
addChild(mapLoader);
}
private function init(e:Event):void {
e.currentTarget.content.loaderInfo.parameters.title = "中国地图";
var demoMap:ChinaMap = e.currentTarget.content as ChinaMap;
demoMap.addEventListener(MapEvent.ITEMCLICK,clickHandler);
}
private function clickHandler(e:MapEvent):void {
trace(e.value);
}
}
你可以从这里下载这个地图的文件:
http://code.google.com/p/chinamapforflash/downloads/list
源码已经提供在Google Code上,你可以随意修改并使用:
http://code.google.com/p/chinamapforflash/source/browse/