flex 中遇到的问题

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&apos;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()都无效??


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值