文章标签 ‘Flex’

转载Flex性能优化常用手法总结 – 爱笑的眼睛 – 博客园. 随着Flex越来越多的被人们所熟知,越来越多的互联网也开始了RIA应用。众所周知,目前国内的宽带应用并不是像很多发达国家发达,个人应用带宽基本上都是2M以下的,怎么样能够使你的Flex应用能够流畅的运行在客户端的问题,成为了制约每个Flex应用开发程序员的大难题。 在这里,我收集整理了一下网络上关于这方面经验,欢迎大家补充。 基本原则: 1. 从外部加载媒体(Media)       Heider提到了一个常用的Flex最佳实践——限制嵌入到应用/SWF文件中的媒体的数量,如图像、影片及mp3等资源都可以从外部的SWF文件加载。  Flex框架可以直接将图片、mp3及字体等资源编译到SWF中。当你想让最终用户获得全部资源时,这种方式确实能派上用场,但是这会导致你的应用长时间停留在“Loading”阶段。  2. 在嵌入式字体中限制字符集 Heider建议在嵌入式字体中限制字符集以降低SWF文件的总下载时间:  当你在Flex中嵌入一种字体时,你就会获得该字体的全部字符的支持。尽管这可能是你想要的,但你确信你需要全部字符么?例如,在一个只面向英文的应用中,你确信你真的想花时间下载中文字符数据么? 3. 缓存框架          Heider回顾了Flex 3 support for runtime-shared-libraries (RSL)这篇文章: 从Flex 3开始,你可以将Adobe签 名的框架——RSLs缓存到Flash Player的cache中。这有两个好处。首先,缓存在Flash Player cache中的签名的框架RSLs可由所有配置好的Flex应用共享。换句话说,如果某人的应用已经下载了500k的签名的框架RSL,并且该RSL仍旧 在Flash Player cache中,那么你的应用就可以使用缓存下来的RSL。其次,即使某人清空了其浏览器缓存,对Flash Player cache也没有任何影响。 4. 考虑模块化  Heider谈到了将Flex应用划分成模块的好处:减少字体加载时间的另一种方式就是将你的Flex应用划分成模块。使用模块的一个好处在于当加载和卸载模块时你能完全操控它。 之所以要划分成模块的最后一个原因是他们更快,而且我能即时加载它们。换句话说,在启动时唯一需要加载的模块就是 Step1.swf模块。因此,在使用模块的情况下,最终用户节省了启动时间,但是当他从一个模块切换到另一个模块时却需要花更多时间,因为每个模块都需 要以JIT形式加载。在我的应用中,只有当用户首次在steps 1-5之间切换时需要花更多时间。  5. 推迟实例化        Heider围绕着Flex组件的“creationPolicy”属性及何时实例化应用的不同部分给出了很多建议。       如果你想减少从数据下载到用户真正可以使用的总时间,当务之急就是推迟实例化。这项技术背后的理念就是直到应用真正使用的时候才在内存中创建对象。      [...]

2012年4月4日16:16 评论关闭

[转载]Event类的几个属性 – 赵杰民 – 博客园. var mc:MovieClip = new MovieClip(); mc.graphics.beginFill(0x0066cc); mc.graphics.drawRect(100,100,200,200); addChild(mc); mc.addEventListener(MouseEvent.CLICK,onClick); function onClick(e:MouseEvent):void { trace(e.type) // Event类下的,表示事件的类型 trace(e.bubbles) // Event类下的,指示事件是否为冒泡事件 trace(e.cancelable) // Event类下的,表示是否忽视事件的默认行为 } bubbles  默认false  true 说明可以使用冒泡事件false 说明不可以 cancelable默认false如果不执行默认行为,则此值为 true;否则为 false。它是只读属性如果要修改可以用preventDefault()方法,可以取消默认行为 代码可通过访问 cancelable 属性来检查是否可以阻止任何指定事件对象的默认行为。 cancelable 属性包含一个布尔值,用于指示是否可以阻止默认行为。 您可以使用 preventDefault() 方法阻止或取消与少量事件关联的默认行为。 cancelable 还可以这样理解表示某个事件的默认行为能否被阻止。 true表示可以阻止,false表示不可以。 Event类的eventPhase属性也是只读属性,表示事件流的阶段。1、表示捕获阶段 2、目标阶段 3、冒泡阶段 var sp1:Sprite = new Sprite(); var [...]

2012年2月1日09:53 评论关闭

转载实现Flex的TextArea文本中关键字的高亮显示 – STF – 博客园. 最近做的Flex项目中有一个需求,要求在一个TextArea中输入文本时,当文本中出现SQL关键字(如select,from,where等)时,让这些关键字高亮显示。 经过一个下午的研究最终算是基本上实现了,实现的过程就是一个学习的过程。 前几天机器重装了系统,FlexBuilder要重新装,从官网上下了最新版的FlexBuilder4.6装到机器上,算是尝了鲜,不过感觉和4.5差别并不大。接下来便是一步步实现的过程了。 首先要知道使用TextArea的change事件和TextRange类可以动态更改TextArea部分文本的样式。 ——————————————– mx.controls.TextArea.change 当 TextArea 控件中的文本通过用户输入发生更改时分派。使用数据绑定或 ‏‏‎‎ActionScript 代码更改文本时不会引发此事件。 即使 Event.bubbles 属性的默认值是 true,该控件也会在 Event.bubbles 属性设置为 false 时分派此事件。 事件类型: flash.events.Event.CHANGE 语言版本: 3.0 Player 版本: Flash 9, AIR 1.1 产品版本: Flex 3 ——————————————– mx.controls.textClasses.TextRange TextRange 类提供在 Label、Text、TextArea、TextEditor 和 RichTextEditor 控件中选择和格式化文本范围的属性。 ——————————————– mx.controls.textClasses.TextRange.TextRange(owner:UIComponent, modifiesSelection:Boolean=false, beginIndex:int=-1, endIndex:int=-1) 创建提供文本控件内容子集的新 TextRange Object,包括格式化信息。 参数: owner [...]

2011年12月30日10:24 评论关闭

[转载]Flex与javascript通信 – 英雄小强 – 博客园. 首先列出代码部分,我们可以先尝试的感受一下效果: 1.Flex代码部分:文件名为Flex_JavaScript.mxml <!–?xml version="1.0" encoding="utf-8"?–> <![CDATA[ import mx.controls.Alert; public function init():void { ExternalInterface.addCallback("FlexMethod",FlexMethod); } private function FlexMethod():void { Alert.show("这是Flex的Alert方法"); } protected function FlexMethod_clickHandler(event:MouseEvent):void { // TODO Auto-generated method stub FlexMethod(); } protected function FlexCallJS_clickHandler(event:MouseEvent):void { // TODO Auto-generated method stub ExternalInterface.call("JSMethod","这是JavaScript的Alert方法"); } ]]> <!– Place non-visual elements (e.g., services, value [...]

2011年9月23日09:25 2 条评论

[转载]BlazeDS 整合 Flex HelloWorld 示例 – hoojo – 博客园. 开发环境: System:Windows WebBrowser:IE6+、Firefox3+ JavaEE Server:tomcat5.0.2.8、tomcat6 IDE:eclipse、MyEclipse 8 Flex IDE:Flash Builder 4 BlazeDS:4.5 开发依赖库: JavaEE5、blazeDS 4.5 Email:hoojo_@126.com Blog:http://blog.csdn.net/IBM_hoojo http://hoojo.cnblogs.com/ 一、准备工作 1、 首先要提供相关的jar包 Java服务器端需要提供BlazeDS相关的配置和jar包 下载地址:http://opensource.adobe.com/wiki/display/blazeds/download+blazeds+trunk 下载后,解压你可以看到这样的一个目录 Docs就是文档 Resource是源码 SampleDB是示例用的数据库,可以运行startdb.bat来启动数据库 Tomcat是内置的tomcat,如果你没有tomcat的话可以使用它,在tomcat的webapps目录中有samples示例 blazeds.war就是blazeDS的核心文件、库,你可以把这个war放到tomcat的webapps目录下,就会自动解压。当然你也可以自己手动解压。 Blazeds-spring.war是和spring整合的配置 Ds-console.war是blazeDS的控制台程序 Samples.war是官方提供的示例 Samples-spring.war是spring和blazeDS的整合示例 二、部署服务器端程序 1、新建一个JavaWeb Project工程,然后在WEB-INF/lib目录中添加如下jar包 这些jar包可以在blazeds.war包中的lib目录中可以找到 2、 然后你需要将blazeds.war包中的WEB-INF目录下的flex目录复制到当前工程的WEB-INF下 3、 将blazeds.war包中的WEB-INF目录下的web.xml的配置,添加到当前工程的web.xml文件中 4、 最后基本的样式如下 5、 最后你发布当前工程,如果没有错误就表明你服务器端部署成功了。 6、 [...]

2011年9月16日17:08 评论关闭
备案信息:冀ICP备10007948号