`

FLEX笔记

    博客分类:
  • FLEX
阅读更多
Adobe Flex 4 官方资料库:
http://help.adobe.com/en_US/flex/using/index.html
http://www.adobe.com/devnet/flex/documentation.html



Creating Flex projects:
http://livedocs.adobe.com/flex/3/html/help.html?content=projects_3.html


开发中时,swf文件被浏览器缓存是个很头疼的问题。
index.template.html中加入以下语句,可以确保编译生成的swf文件在浏览器中不会被缓存,每刷新一次浏览器,都会重新load swf文件:
<meta http-equiv="Expires" content="0" />
        <meta http-equiv="Pragma" content="no-cache" />
        <meta http-equiv="Cache-Control" content="no-cache" /> 




Flex 4 "Bug" 汇总:
FB的bug:将felx项目交给svn管理后,当重新编译flex代码时,html-template目录下的.svn也会被全盘输出到output folder;最终导致当提交output folder,结果提交到了felx源码目录的html-template目录下!!!:
http://forums.adobe.com/message/55988
上面链接中说在Flex Builder 3 Beta 3中已解决;可是事实是我遇到这种问题用的是FB4!
暂时采用的临时解决办法:
flex源码目录下的html-template目录,不要纳入svn管理!
Vo中有这样一个set方法:
public function set isEnableAsObject(value:Object):void{
		if(null!=value && ""!=value) {
			this.isEnable = String(value);
		}
	}
当传进去的参数为0时,居然不进入if代码段!去掉if条件中的""!=value,则可以正常进入!我就纳闷了!0和空串""难道还相等了?如果说是因为空串""是String类型,而该set方法接受的参数value是个Object类型,代码里的这个判断 ""!=value 无从比较起,那为什么参数value是1,2,3...都没问题,偏偏只有为0时有问题?FLex这东西在基本类型的处理上,真让人不爽。
改进后的代码:
public function set isEnableAsObject(value:Object):void{
		var strValue:String = String(value);
		if(null!=strValue && ""!=strValue) {
			this.isEnable = strValue;
		}
	}

s:NavigatorContent标签的visible="false"属性居然不起作用!设为false也好,true也罢,s:NavigatorContent永远显示:
New Flash Builder 4 is out but … old bugs remain:
http://eaigurus.com/blog/?p=195
使用 TabNavigator..getTabAt(idx).visible = false 可以设置s:NavigatorContent的visible为false:
http://wuaner.iteye.com/admin/blogs/1062837
flex 4 的 s:ComboBox 的一个bug:当combobox中选择某项后,选择该combobox的textinput中的文本,点击后车backspace,清空该textinput中的所有文本,鼠标不要移开该combobox,再次选择刚才选的下拉项,会发现选不上!!!
bug举例 - flex 4.5 官方 combobox使用文档的例子就可以重现这个bug:
http://help.adobe.com/en_US/flex/using/WS70f0d54f063b9b081aac8d1d1247252e4a0-8000.html



Flex难点汇总:
当需要通过多于一次的remote调用去初始化一个控件的时候(如,修改页面的一个combobox下拉;下拉列表的数据来自一次remote调用,取得该修改的记录是另一次remote调用,需要在这两次异步、返回时间不定的remote调用都返回后,再去执行某个function去做该comboox在修改页面的初始化工作。),应该怎么保证这个“初始化”的动作能正确的在所有的remote调用都成功返回后再去做?




使用绝对定位是使 Flex 控件重叠的唯一方法。

在 Flex 模型–视图设计模式下, 用户界面组件代表视图。MXML 语言支持两种用户界面组件类型: 控件和容器。容器是包含控件和其他容器的屏幕的矩形区域。控件是表单元素, 如按钮、文本字段和列表框。





flex与后台server的数据交互方法 :
httpservice, webservice, RemoteObject, socket

FLEX HTTPService vs RemoteObject:
http://bzhang.iteye.com/blog/310663



在Flex开发中需要做debug时,需要下载debug版的Flash Player。官方下载版本很多,容易让人糊涂,这里可以参考这篇文章(需FQ):
有史以来关于Flash Player的最详细说明:
http://zengrong.net/post/1188.htm


XML Namespaces and URI:
http://www.w3schools.com/XML/xml_namespaces.asp


Flash Builder 4.0 发行说明:
http://kb2.adobe.com/cn/releasenotes/530/cpsid_53079.html


Flex 3 与 Flex 4 之间的区别:
http://www.adobe.com/cn/devnet/flex/articles/flex3and4_differences_03.html
引用
以下是使用 MXML 2009、Spark 和 Halo 命名空间创建一个简单的 Flex 4 beta 应用程序的简明示例。
<s:Application
  xmlns:fx="http://ns.adobe.com/mxml/2009"  
  xmlns:s="library://ns.adobe.com/flex/spark"
  xmlns:mx="library://ns.adobe.com/flex/mx">
    
    <mx:DateChooser id="main_calendar" x="20" y="20"/>
    <s:Button label="submit" x="220" y="20"/>
 
</s:Application>



在正式版的flash builder4里,重新定义了halo包的命名空间。从原来的library://ns.adobe.com/flex/halo改为新的library://ns.adobe.com/flex/mx
http://hi.baidu.com/sc304/blog/item/7c8673360d02ec1c91ef39b1.html





点滴拾遗:
FLEX中让控件显示居中的办法,如:pannel:
http://www.flashbuilderx.com/article.asp?id=37
引用
verticalCenter="0" horizontalCenter="0"

获取通过addElement动态添加的textinput的text值:
http://stackoverflow.com/questions/966047/flex-3-dynamic-creation-and-binding-of-textinput
Build a PopUp Window with Flex:
http://www.riacodes.com/flex/build-a-popup-window-with-flex/
The Spark TitleWindow container:
http://help.adobe.com/en_US/flex/using/WS6c678f7b363d5da52e8f1ca1124a0430dcf-8000.html
日期格式化:
http://www.fitchett.me/index.php/development/adobe-flex-format-date-time-inside-of-a-datagrid-too/
CheckBox selection in DataGrid and List :
http://blogs.adobe.com/aharui/2008/02/checkbox_selection_in_datagrid.html
Flex 4 TabNavigator组件或TabBar加ViewStack组合组件的选择:
http://www.cnblogs.com/lmjsocool/archive/2011/03/24/lmjsocool.html
Spark ComboBox control:
http://help.adobe.com/en_US/flex/using/WS70f0d54f063b9b081aac8d1d1247252e4a0-8000.html
Spark DropDownList control:
http://help.adobe.com/en_US/flex/using/WSc2368ca491e3ff92-59bf082612135c9e688-7fff.html
datagrid的itemClick(通过它我发现并使用了itemDoubleClick;使用itemDoubleClick的前提是doubleClickEnabled="true"):
http://polygeek.com/flex/528_DatagridSelectedRow/srcview/index.html
引用
private function onItemClick( e:ListEvent ):void {
            selectedBlogLabel.text = "blog: " + e.itemRenderer.data.blog + "\n";
            selectedBlogLabel.text += "URL: " + e.itemRenderer.data.blogURL + "\n";
            selectedBlogLabel.text += "By: " + e.itemRenderer.data.blogBy;
        }




Flex调用父级的变量和方法:
http://ljhzzyx.blog.163.com/blog/static/383803122009013111737406/
Flex TitleWindow返回值处理:
http://blog.csdn.net/chuangxin/archive/2010/06/30/5705519.aspx

http://forums.adobe.com/message/2863414
引用
四楼:
In your pop up:
private var _callbackFunction:Function;
 
public function set callbackFunction( value:Function ):void {
     _callbackFunction = value;
}
 
protected function buttonClickedInpopup():void {
     _callbackFunction(null);
}
And in your Main.mxml:
var titleWindowInstance:Popup = Popup(PopUpManager.createPopUp(this, Popup, true));
titleWindowInstance.rowData =  arr.getItemAt(event.rowIndex);
titleWindowInstance.callbackFunction = functInMain;
PopUpManager.centerPopUp(titleWindowInstance);  
通过事件的方式:
http://www.justskins.com/forums/call-a-function-in-131376.html
引用
帖中7楼:
OK, I've got it, if it helps anyone. It's almost what kcell suggested:

In the popup window component:
<mx:Metadata>
[Event(name="foobar", type="flash.events.Event")]
</mx:Metadata>

In the script:
private function handleSaveClick(aEvent:Event):void {
fileName=saveName.text;
dispatchEvent(new Event("foobar", true));
PopUpManager.removePopUp(this);
}

Then the button:
<mx:Button id="saveButton" label="Save" styleName="normalButton"
click="handleSaveClick(event)" />

Then in the parent app:

private var sWin:SaveDialog;

private function saveDialog():void{
sWin =
com.taunton.cyor.SaveDialog(PopUpManager.createPop Up(this,com.taunton.cyor.SaveD
ialog,true));
sWin.fileName = app._stepData0.@title;
sWin.saveName.setFocus();
sWin.addEventListener("foobar", myClickHandler);
}

private function myClickHandler(e:Event):void{
saveRecipe();
}




刷新DataGrid:
Collection events and manual change notification:
http://livedocs.adobe.com/flex/3/html/help.html?content=about_dataproviders_5.html
http://rachaelandtom.info/content/reseting-flex-datagrids-dataprovider-when-using-filterfunction
http://blog.flexexamples.com/2008/12/16/detecting-when-the-data-provider-of-a-datagrid-control-changes-in-flex/



与java后台pojo的交互:
The Form Layout Container:
http://learn.adobe.com/wiki/display/Flex/Form
Using RemoteObject components:
http://livedocs.adobe.com/flex/3/html/help.html?content=datamodels_6.html#157183
Flex Test Drive: Modify the database:
http://www.adobe.com/devnet/flex/testdrive/articles/2_modify_the_database.html
Form, FormHeading, and FormItem layout containers:
http://livedocs.adobe.com/flex/3/html/help.html?content=layouts_08.html
http://hi.baidu.com/11%C5%A3%C5%A3/blog/item/ae74ffefbc75aa3dadafd506.html
引用
在这里我必须强调一点,那就是模块化开发方便之余的问题,也就是前台value object和后台pojo的相互转换,必须是相互。前台VO类建立时必须指明与后台对应的类:[RemoteClass(alias="这里写清楚后台类路径及名称")]。这就完成了前台转后台时对应。而对于后台转前台的对应呢,必须在主模块中注册:flash.net.registerClassAlias("vo",pojo).

http://wangleifire.iteye.com/blog/482999
引用
flex remote 传递 object 参数和接受返回的 dojo 对象,应注意以下问题:
1.as 对象属性必须为 public 的
2.remote 调用的 java 方法时,参数不能作为区别不同方法的依据,也就是说, java 方法不
能重名
3.dojo 对象,必须有无参构造函数
4.as 对象需加 [RemoteClass(alias="cn.com. remote.test.User")]

remoteObject传参:
1 Explicit parameter passing and parameter binding:
http://livedocs.adobe.com/flex/3/html/help.html?content=data_access_5.html
引用
<mx:RemoteObject
        id="employeeRO"
        destination="roDest"
        showBusyCursor="true"
        fault="Alert.show(event.fault.faultString, 'Error');">
        <mx:method name="getList">
            <mx:arguments>
                <deptId>{dept.selectedItem.data}</deptId>
            </mx:arguments>
        </mx:method>
    </mx:RemoteObject>
2 http://stackoverflow.com/questions/4373524/flex-remoteobject-passing-named-parameters
引用
categoryGateway.getCategoryList({orderby:'categoryId', parentCategory:'1'});

Handling multiple remote services with RemoteObject :
http://ria-coder.com/blog/handling-multiple-remote-services-with-remoteobject-the-easy-way


  • 大小: 2.6 KB
分享到:
评论

相关推荐

    flex笔记 flex笔记 flex笔记

    根据提供的标题、描述以及部分代码内容,我们可以推断出这些信息与Flex技术有关。Flex是一种用于构建跨浏览器、跨平台的富互联网应用(RIA)的软件框架,它使用Adobe Flash Player或Adobe AIR来呈现界面,并支持多种...

    精品flex笔记共29页.pdf.zip

    【精品】flex笔记共29页.pdf.zip

    flex笔记(对初学者有所帮助)

    此笔记为本人刚开始学习flex的时候自己对日常使用过程中自己整理的笔记,希望对初学者有所帮助。

    Flex笔记集

    从给定的文件信息来看,我们正在探讨的是Adobe Flex,这是一种用于构建和部署跨平台桌面应用程序和移动应用程序的开源框架。下面将详细解析文件中提到的关键知识点。 ### 1. Flex的基本结构 Flex应用程序通常由...

    Bison and Flex for windows source

    压缩包中的“Bison-Flex 笔记 - Bison-Flex - 自然之道.htm”和“Bison-Flex 笔记 - Bison-Flex - 自然之道.files”是学习资料,可能包含了一些实用教程和示例,对于初学者来说非常有价值。通过这些资料,用户可以...

    flex右键功能 画图

    在IT行业中,Flex是一种基于ActionScript 3.0和Flash Player的开源框架,主要用于构建富互联网应用程序(RIA)。本文将详细讲解如何在Flex项目中实现右键功能,并结合描述中的"点击右键会不断地画出小圆点"这一具体...

    FLEX学习笔记

    《FLEX学习笔记》 FLEX,全称为Flex Builder,是由Adobe公司开发的一款基于MXML和ActionScript的开源框架,用于构建富互联网应用程序(RIA)。它允许开发者创建具有交互性、响应性和丰富用户体验的Web应用。FLEX的...

    Flex学习笔记-基本语法

    Flex是Adobe开发的一种用于构建富互联网应用程序(RIA)的框架,它主要基于ActionScript(AS)编程语言。在本文中,我们将深入探讨Flex学习过程中的基础语法,特别是从AS2到AS3的变化。 首先,ActionScript 3(AS3...

    flex学习笔记 flex学习总结 flex学习教程

    Flex是Adobe公司推出的一种用于构建富互联网应用程序(RIA)的技术,它基于ActionScript编程语言和Flex框架,可以创建交互性强、用户体验优秀的Web应用。本教程是作者精心编写的Flex学习资料,适合初学者入门,通过...

    Flex布局笔记.docx

    本笔记将深入探讨Flex布局的核心概念、属性及其用法。 1. Flex容器(flex-container) Flex容器是通过设置`display`属性来定义的,有两种类型: - `display: inline-flex`:创建一个行内Flex容器,元素与其他行内...

    flex actionscript学习笔记

    Flex ActionScript 学习笔记是关于使用Adobe Flex技术并结合ActionScript 3.0进行开发的知识总结。ActionScript 3.0是随着Flash CS3一起推出的一种强大的编程语言,相较于之前的ActionScript版本,它有着显著的提升...

    flex 学习详细笔记

    本笔记将深入探讨Flex的基本概念、架构、组件、布局管理器以及事件处理机制,帮助初学者全面理解并掌握Flex开发。 1. **Flex简介**:Flex是一种开放源代码的框架,主要用于创建交互式的、基于Web的用户界面。它允许...

    Flex学习笔记.rar

    本压缩包“Flex学习笔记.rar”显然是一份针对初学者的教程资料,旨在帮助新接触Flex的开发者快速上手。 在“FlexBeginner.pdf”这份文档中,你可以期待找到以下关键知识点: 1. **Flex概述**:介绍Flex技术的基本...

    Flex学习笔记-由浅入深

    Flex是Adobe公司推出的一种用于构建富互联网应用(RIA)的框架,主要由Flex SDK和Flex Builder两大部分组成。Flex SDK包含编译器、框架类库和调试工具,而Flex Builder则是一个基于Eclipse的集成开发环境,为Flex...

    Flex学习笔记(flex必知必会).doc

    Flex学习笔记(flex必知必会).docFlex学习笔记(flex必知必会).doc

    Flex学习笔记

    这篇“Flex学习笔记”可能是作者在深入研究Flex技术过程中整理的心得体会和实践案例,结合了《Flex3权威指南》这本书的内容。 在Flex中,ActionScript是核心编程语言,它是基于ECMAScript的一个版本,专门针对富...

    Flex学习笔记.doc

    Flex学习笔记概述 Flex是一种由Adobe开发的企业级富互联网应用(RIA)的表示层解决方案,其主要目的是提供高度交互和动态的用户体验。Flex的核心在于它的编程语言MXML和ActionScript(AS),这两种语言结合在一起,...

    Flex AS3学习笔记总结

    Flex AS3 学习笔记总结 Flex 是 Adobe 开发的 RIA(Rich Internet Applications)工具,包括 Flex3 SDK、Flex Builder 和服务器产品,如 Lifestyle Data Services、CodeFushion。Flex 应用程序用 Flash.swf 文件...

    Flex学习笔记1

    Flex学习笔记1 - 容器布局对象状态的切换和数据绑定 在 Flex 应用程序中,容器布局对象状态的切换是非常常见的需求。例如,在购物车应用程序中,我们可能需要在不同的状态之间切换,例如从商品浏览状态到购物车状态...

    Flex for arcgisserver 开发笔记

    【Flex for ArcGIS Server 开发笔记】 Flex for ArcGIS Server 是一种用于构建富互联网应用程序(RIA)的开发框架,特别适用于开发与地理信息系统相关的Web应用。由ESRI公司推出,它为ArcGIS Server 9.3提供了一种...

Global site tag (gtag.js) - Google Analytics