注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

享受编码

    的乐趣

 
 
 

日志

 
 

FLEX笔记  

2011-11-02 16:12:41|  分类: Flex & as3 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
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文件:
Html代码  
  1. <meta http-equiv="Expires" content="0" />  
  2.         <meta http-equiv="Pragma" content="no-cache" />  
  3.         <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方法:
Js代码  
  1. public function set isEnableAsObject(value:Object):void{  
  2.         if(null!=value && ""!=value) {  
  3.             this.isEnable = String(value);  
  4.         }  
  5.     }  
当传进去的参数为0时,居然不进入if代码段!去掉if条件中的""!=value,则可以正常进入!我就纳闷了!0和空串""难道还相等了?如果说是因为空串""是String类型,而该set方法接受的参数value是个Object类型,代码里的这个判断""!=value 无从比较起,那为什么参数value是1,2,3...都没问题,偏偏只有为0时有问题?FLex这东西在基本类型的处理上,真让人不爽。 
改进后的代码:
Js代码  
  1. public function set isEnableAsObject(value:Object):void{  
  2.         var strValue:String = String(value);  
  3.         if(null!=strValue && ""!=strValue) {  
  4.             this.isEnable = strValue;  
  5.         }  
  6.     }  

 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.htmlFLEX笔记 - xiaotot - 享受编码 



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




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

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







flex数据交互方法 :httpservice, webservice, RemoteObject, socket 
FLEX HTTPService vs RemoteObject: 
http://bzhang.iteye.com/blog/310663 



有史以来关于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 应用程序的简明示例。
Xml代码  
  1. <s:Application  
  2.   xmlns:fx="http://ns.adobe.com/mxml/2009"    
  3.   xmlns:s="library://ns.adobe.com/flex/spark"  
  4.   xmlns:mx="library://ns.adobe.com/flex/mx">  
  5.       
  6.     <mx:DateChooser id="main_calendar" x="20" y="20"/>  
  7.     <s:Button label="submit" x="220" y="20"/>  
  8.    
  9. </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
引用
Js代码  
  1. private function onItemClick( e:ListEvent ):void {  
  2.             selectedBlogLabel.text = "blog: " + e.itemRenderer.data.blog + "\n";  
  3.             selectedBlogLabel.text += "URL: " + e.itemRenderer.data.blogURL + "\n";  
  4.             selectedBlogLabel.text += "By: " + e.itemRenderer.data.blogBy;  
  5.         }  




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:
Flex代码  
  1. private var _callbackFunction:Function;  
  2.    
  3. public function set callbackFunction( value:Function ):void {  
  4.      _callbackFunction = value;  
  5. }  
  6.    
  7. protected function buttonClickedInpopup():void {  
  8.      _callbackFunction(null);  
  9. }  
And in your Main.mxml:
Flex代码  
  1. var titleWindowInstance:Popup = Popup(PopUpManager.createPopUp(this, Popup, true));  
  2. titleWindowInstance.rowData =  arr.getItemAt(event.rowIndex);  
  3. titleWindowInstance.callbackFunction = functInMain;  
  4. 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
引用
Actionscript代码  
  1. <mx:RemoteObject  
  2.         id="employeeRO"  
  3.         destination="roDest"  
  4.         showBusyCursor="true"  
  5.         fault="Alert.show(event.fault.faultString, 'Error');">  
  6.         <mx:method name="getList">  
  7.             <mx:arguments>  
  8.                 <deptId>{dept.selectedItem.data}</deptId>  
  9.             </mx:arguments>  
  10.         </mx:method>  
  11.     </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 

 

 

原文地址:http://wuaner.iteye.com/blog/368016

  评论这张
 
阅读(1707)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018