zoukankan      html  css  js  c++  java
  • Flex 经验笔记一

    1. Module页面嵌套子Module页面
      直接用标签嵌入是不行的,无法显示出来,需要用到 ModuleManager 使用ModuleInfo 的 addEventListener 判断当子Module 载入完成后,才可以绑定父 Module 的 ModuleLoader 标签。
      private var info:IModuleInfo;
      private function init(event:FlexEvent):void {
          info = ModuleManager.getModule("xxx/childModule.swf");
          info.addEventListener(ModuleEvent.READY, moduleHandler);
          info.load();
      }
      
      private function moduleHandler(event:ModuleEvent):void {
          pagelbl.addChildAt(event.module.factory.create() as DisplayObject, 0);
      }

      要获取这个 子Module 中的方法对象:

      var _module:Object = pagelbl.getChildAt(0);

      假如这个 子Module 中有这些个的方法,成员: (假设 childModule.mxml 中 嵌入一个 childModule.cs)

      public var xxxId:String = '0';
      public var yyyId:String = '0';
      
      public var executeSuccess:Function;
      [Bindable]
      public var shapeObj:Object = {};
      
      public function formdatas(json:Object):void
      {
          //...
      }

      那么就用 _module.xxxId, _module.yyyId 就可以访问 childModule 中的对象...

    2. 有些组件在 Module 页面,无法正常显示,这有可能是需要其他的一些配置,但有可能你直接把这个配置写在本页面(比如: fx:Declarations 内), 还是无法显示,但又找不到错误提示,这时你可以把配置写在 application 页面的 '定义' 标签内试 (fx:Declarations)。

    3. 要记得把 Module 添加到 : 项目 - 属性 - Flex模块中去,不然会无法显示!

    4. 解决 Module 页面调用 Alert.show [TitleWindow] 弹窗透明问题:
      要在所在的 Application 父页面 Script 全局添加 :
      import mx.managers.PopUpManager;
      private var pop:PopUpManager=new PopUpManager();

      调用的Alert.show 尽量前面四个参数都写出来:

      Alert.show(“提示信息”,”标题”, Alert.OK, this);

      当Alert.show 是在异步后调用,或是在回调方法中调用的:
      则需要在异步调用,或是在回调方法前面定义:

      var that:Sprite = this;

      然后用 that 代替 this;

    5. ArrayCollection 的 filterFunction:
      用于批量修改 ArrayCollection 中键所对应的值:

      arrayCollection.filterFunction = filterFunction;
      arrayCollection.refresh();
      
      private function filterFunction(item:Object):Boolean
      {
          item['field'] = newValue;
          return true;
      }
    6. 有可能在 项目 - 属性 - 构建路径 - 源路径, 无法添加文件夹 (不懂是不是破解版的问题):
      这时可以通过在项目根目录下的 .project 以及 .actionScriptProperties 文件内的某位置添加相应的配置即可.
      .project:

      <linkedResources>
              <link>
                  <name>[source path] src</name>
                  <type>2</type>
                  <location>X:/xxx/develops/flex/projectName/src</location>
              </link>

      .actionScriptProperties, compile标签下:

      <compilerSourcePath>
            <compilerSourcePathEntry kind="1" linkType="1" path="E:/xxx/develops/flex/projectName/src"/>
          </compilerSourcePath>
    7. 用 PopUpManager 拖动 TitleWindow 如果 TitleWindow 内嵌套 iframe,如果TitleWindow 是spark 类的,拖动就会发生相对位移;

      用 mx 类型的TitleWindow 即可;

    8. Module 所在的 父 Application 页面配置了 <s:Scroller 滚动标签,如果 Module 根标签 设置 height='100%', 滚动条不显示,应该去掉,或是设置固定高度值。

    9. 界面容器组件随窗口改变而改变,在界面初始化时添加代码:
      this.systemManager.addEventListener(Event.RESIZE, winResizeHandler);
      
      private function winResizeHandler(event:Event):void {
          stage.scaleMode = StageScaleMode.NO_BORDER;
          //...
      }
    10. 如果要使用 无标题的 Panel 可以使用 Canvas 
      Canvas 以及 XBox 可以 addChild Module,XGroup 好像不行。
      Label 也可以添加 Module ,但 Module 内的 Form 无法点击。
  • 相关阅读:
    Head first javascript(七)
    Python Fundamental for Django
    Head first javascript(六)
    Head first javascript(五)
    Head first javascript(四)
    Head first javascript(三)
    Head first javascript(二)
    Head first javascript(一)
    Sicily 1090. Highways 解题报告
    Python GUI programming(tkinter)
  • 原文地址:https://www.cnblogs.com/editor/p/3824025.html
Copyright © 2011-2022 走看看