1. mxml的文件名不能和控件名相同,因为会和原有的控件冲突
2. 为什么Tabnavagition一边有滚动条一边没有?(控件大小,显示器大小有关)
3.custom component 没法实例化?
myCanvas是空的
4。<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical" verticalAlign="top"
creationComplete="creationCompleteHandler()" >
<mx:Script>
<![CDATA[
import com.sf.gec.MyState;
import mx.controls.Alert;
import mx.utils.*;
private function creationCompleteHandler():void
{
var myState:MyState = new MyState();
}
]]>
上述代码正确,但如果没有 creationComplete="creationCompleteHandler()"
4。<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical" verticalAlign="top"
>
<mx:Script>
<![CDATA[
import com.sf.gec.MyState;
import mx.controls.Alert;
import mx.utils.*;
var myState:MyState = new MyState();
]]>
这样的话会报错: myState未定义。
5. get remoteObject 的结果总是FAULT,原来是service启动出了问题(lcds 没有启动成功)
6.关于用mxml作为customer组件的两个代码
主mxml:titleWindowExample.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="top"
horizontalAlign="center" backgroundGradientColors="[0x000000,0x323232]" paddingTop="20" viewSourceURL="srcview/index.html">
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
import mx.containers.TitleWindow;
import flash.geom.Point;
private var point1:Point = new Point();
// Open the TitleWindow container.
// Cast the return value of the createPopUp() method
// to SimpleTitleWindowExample, the name of the
// component containing the TitleWindow container.
private function showWindow():void {
var login:SimpleTitleWindowExample =SimpleTitleWindowExample (PopUpManager.createPopUp( this, SimpleTitleWindowExample , true));
// Calculate position of TitleWindow in Application's coordinates.
point1.x=myButton.x;
point1.y=myButton.y;
point1=myButton.localToGlobal(point1);
login.x=point1.x+25;
login.y=point1.y+25;
// Pass a reference to the TextInput control
// to the TitleWindow container so that the
// TitleWindow container can return data to the main application.
login.loginName=returnedName;
}
]]>
</mx:Script>
<mx:Panel title="TitleWindow Container" layout="vertical" color="0xffffff" borderAlpha="0.15"
paddingTop="10" paddingRight="10" paddingBottom="10" paddingLeft="10" horizontalAlign="center">
<mx:Button id="myButton" color="0x323232" height="32" label="Click to open the TitleWindow container"
click="showWindow();"/>
<mx:Text id="returnedName" width="100%" color="0x323232" text="Waiting..."/>
</mx:Panel>
</mx:Application>
从mxml:SimpleTitleWindowExample.mxml 注意和上面申明的类同名,两个文件在同一个文件夹下。
<?xml version="1.0" encoding="utf-8"?>
<!-- Simple custom MXML TitleWindow component.
The TitleWindowApp application displays this component.
You cannot run it independently. -->
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml"
title="Title Window" x="168" y="86" status="active" showCloseButton="true" close="PopUpManager.removePopUp(this);" borderAlpha="0.75">
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
import mx.controls.Text;
// A reference to the TextInput control in which to put the result.
public var loginName:Text;
// Event handler for the OK button.
private function returnName():void {
loginName.text="Name entered: " + userName.text;
PopUpManager.removePopUp(this);
}
]]>
</mx:Script>
<mx:HBox>
<mx:Label text="Enter Name: "/>
<mx:TextInput id="userName" width="100%"/>
</mx:HBox>
<mx:HBox>
<mx:Button label="OK" click="returnName();"/>
<mx:Button label="Cancel" click="PopUpManager.removePopUp(this);"/>
</mx:HBox>
</mx:TitleWindow>
7.登陆GEC的MainApp.mxml 出错,原因是更新了一下web.xml把一段代码SMSimulatorFilter给覆盖掉了
web.xml::
<!-- uncomment the following block to enable SiteMinder simulator -->
@SimulatorFilter.Begin.Comment@
<filter>
<filter-name>SMSimulatorFilter</filter-name>
<display-name>SMSimulatorFilter</display-name>
<description></description>
<filter-class>com.ssgm.security.web.utils.SMSimulatorFilter</filter-class>
</filter>
@SimulatorFilter.End.Comment@
<filter>
<filter-name>filterChainProxy</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
这段配置文件是用来模拟produce环境中的agent,没有的话就无法启动
8.ReferenceError: Error #1069: Property null not found on com.sft.gec.data.vo.GecStrategyVO and there is no default value.
at com.sft.gec.component::BindableValueComboBox/set data()
strategyStStatusCbbCf = new ClassFactory(BindableValueComboBox);
strategyStStatusCbbCf.properties = {dataProvider: gecStrategyModel.stStatusType, dataField: "stStatus" };
strategyApiStatusCbbCf = new ClassFactory(BindableValueComboBox);
strategyApiStatusCbbCf.properties = {dataProvider: gecStrategyModel.apiStatusType, dataField: "apiStatus" };
9.用了GecRegionVO 报错:
ReferenceError: Error #1069: Property data not found on com.sft.gec.data.vo.GecRegionVO and there is no default value.
at com.sft.gec.component::BindableValueComboBox/updateSelectedValue()[C:/workspace/GEC/WebContent/WEB-INF/flex/user_classes/com/sft/gec/component/BindableValueComboBox.as:119]
at <anonymous>()[C:/autobuild/galaga/frameworks/projects/framework/src/mx/binding/utils/BindingUtils.as:145]
用到 GecRegionVO的地方只有:
public function setRegionLabels():void
{
for each(var obj:Object in clientRegions)
{
var region:GecRegionVO = obj as GecRegionVO;
regionsMap.put( region .regionName, region .regionId);
}
}
如果改成如下不用 GecRegionVO就没有这个问题
public function setRegionLabels():void
{
for each(var obj:Object in clientRegions)
{
regionsMap.put(obj.regionName,obj.regionId);
}
}
10. gecStrategyMarketVO 中 spRate:Number,结果在TextInput 中无法清掉,总是显示0.可能把NULL赋给 spRate时类型转化自动变成0.所以遇到显示为0有可能实际值是空。可以直接定义为String 类型的。
11.标签上有的就不需要声明。
12。 [Binable]只能声明在public class 中?如果声明在
class RemoveRowItemRenderer extends HBox
{
public var removeItemHandler:Function;
private var _dataField:String;
[Binable]
private var enableFlag:Boolean;
private var btn:DeleteButton = new DeleteButton();
public function set dataField(value:String):void
{
_dataField = value;
}
会报错: Overriding a function that is not marked for override.
13.修改了系统时间导致FLEX没有更新SWF文件,但错误的代码编译海是不会通过。
14. 在gecBorrowVO中定义:
public var borrowId:Number = -1;
public cusip = borrowModel.isAggregateDemandSelected &&Constants.SINGLE_BORROW_TAB == borrowModel.tabLabel?borrowModel.selectedAggregateDemand.cusip:"";
private var borrowModel:BorrowModel = BorrowModel.getInstance();
这样会报错,原因是 borrowModel定义在 cusip下面,而cusip用到了borrowModel,在初始化时为空,所以报错。
15. 使用BindingUtils.bindSetter时属性必须是Bindable。且如果绑定的source变为空,destination还是保持原样,没有变为空。
16.用乘法时要注意。trace(100 * 1.02) 的结果是 102.0000000001, trace(100 * 1.03) 的结果是102.999999999如果要取整,trace(100 * 1.02.toFixed(7))的结果是102.0000000
17. 如果想redraw 一下dataGrid,可以用
// redraw data grid
borrowDataGrid.invalidateList();
实验了好久,发现用 invalidateDisplayList(),和validateNow()都无效??