‘Flash’ 分类的存档

转载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 评论关闭

[转载]解决SWFUpload在Chrome、Firefox等浏览器下的问题 – 杨中科 – 博客园. SWFUpload 是一个非常不错的异步上传组件,但是在Chrome、Firefox等浏览器下使用的时候会有问题。问题如下:为了防止跳过上传页面直接向“接受 SWFUpload上传的一般处理程序”(假如是Upload.ashx)发送请求造成WebShell漏洞,我的系统中对于Upload.ashx进行 了权限控制,只有登录用户才能进行上传。在IE下没问题,但是在Chrome下运行报错“用户未登录”。 经过搜索得知:因为SWFUpload是靠Flash进行上传的,Flash在IE下会把当前页面的Cookie发到Upload.ashx,但是Chrome、Firefox下则不会把当前页面的Cookie发到Upload.ashx。因为Session是靠Cookie中保存的SessionId实现的(传智播客的ASP.NET视频教程中讲到了Session和Cookie的关系,对于这点不熟悉的可以参考《传智播客视频教程2011版:ASP.NET≠拖控件》),这样由于当前页面的Cookie不会传递给Flash请求的Upload.ashx,因此请求的文件发送到Upload.ashx就是一个新的Session了,当然这个Session就是没有登录的了。 解决这个问题的思路也很简单,那就是手动把SessionId传递给服务器,再服务器端读出SessionId再加载Session。其实解决问题的办法SWFUpload的Demo中已经给出了,那就是在SWFUpload的构造函数中设置post_params参数: swfu = new SWFUpload({ // Backend Settings upload_url: “/Upload.ashx”, post_params: { “ASPSESSID”: “<%=Session.SessionID %>”}, post_params中设定的键值对将会以Form表单的形式传递到Upload.ashx,也就是SWFUpload提供了为请求增加自定义请求参数的接口。 上面的代码把当前页面的SessionId写到ASPSESSID值中,当用户上传文件后,ASPSESSID就会传递到服务器上了,在Global.asax的Application_BeginRequest中添加如下代码: var Request = HttpContext.Current.Request; var Response = HttpContext.Current.Response; /* Fix for the Flash Player Cookie bug in Non-IE browsers. * Since Flash Player always sends the IE cookies [...]

2012年2月1日08:38 评论关闭

转载实现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 评论关闭

[转载]常用图表控件总汇 – Eric_ – 博客园. 数据可视化,图形化显示是当前工业领域、商业领域、金融领域等不可或缺的元素,通常采用图表进行数据可视化展示,直观地显示数据、对比数据、分析数据,很多项目开发中都会需求到图表控件,这里简单介绍下各个开发平台下的常用图表控件。 Flash类的图表: 该类图表主要使用Flash Player作为载体,使用XML作为数据输入,优点是可以跨平台、跨浏览器,支持多种开发语言,快速上手且使用简单,支持多种类型的图表、仪表和地图,具备交互功能且可连接多种数据库 1. AnyChart图表控件 AnyChart控件是一款当前流行的数据可视化解决方案,使客户可以创建交互地、生动的图表和仪表、地图。该控件提供极好的视觉外观和配色方案能 够使客户根据不同的需求设计图表,AnyChart是一款跨浏览器的工具,可以被用于Web、Desktop和Mobile应用程序,AnyChart可 运行于当前PC和Mac上所有主流的浏览器,如:Chrome, Safari, Firefox, Internet Explorer和Opera,并且可用于所有移动平台(Android (2.2+) 和 iOS (iPhone, iPad, iPod Touch). )上的主流浏览器,全面支持HTML5和SVG 具体介绍和在线事例请查看>> 2. FusionCharts图表控件 FusionCharts帮助开发人员创建动态的和交互式的图表应用程序,可用于PCs, Macs, iPads, iPhones和其他主流的移动驱动,控件使用Flash和JavaScript(HTML5)来创建图表,使用XML或者JSON作为数据输入,支持 ASP, ASP.NET, PHP, JSP, ColdFusion, Ruby on Rails等脚本语言和多种数据库,支持多种图表类型、仪表和地图。 具体介绍和在线事例请查看>>>> .NET类图表 该 类图表主要是针对.NET平台设计,并不需要Flash Player等作为载体,可直接在WebForm和WinForm窗体上显示,控件提供了直连数据源接口,不需使用XML作为数据输入,可直接绑定各种数 据源到控件,同样支持多种图表、仪表类型,具备各种交互功能,实时数据显示 1. TeeChart for .NET TeeChart for .NET是Steema软件公司的一款老牌图表控件,历经15年,已经被全球多个领域广泛使用,支持WPF, Silverlight,ASP.NET, [...]

2011年10月13日10:29 评论关闭
备案信息:冀ICP备10007948号