易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : flex

Flex 中可能导致内存泄露的地方

Flex 中可能导致内存泄露的地方
收集了不少的会导致内存泄露的情况:
事件监听:
对父级对象加了监听函数,会造成内存泄露,例:
override protected function mouseDownHandler(…):void
{
systemManager.addEventListener(“mouseUp”, mouseUpHandler);
......
解决:
在销毁对象的时候,remove掉这些监听,虽然弱引用也可以避免这些问题,但自己掌控感觉更好。
但以下几种情况不会造成内存泄露:
弱引用:someObject.addEventListener(MouseClick.CLICK, handlerFunction, false, 0, true);
对自己的引用:this.addEventListener(MouseClick.CLICK, handlerFunction);
子对象的引用:
private var childObject:UIComponent = new UIComponent;
addChild(childObject);
childObject.addEventListener(MouseEvent.CLICK, clickHandler);
总之…有addEventListener,就removeEventListener一下吧,要为自己做的事负责~哈哈
清除引用
remove掉子对象后并不会删除该对象,他还保留在内存中,应该将引用设置为null
removeChildren(obj);
obj = null;
静态成员
Class (或MXML)中有:
public static var _eventService : M ......

FLEX容器的布局规则

FLEX中所有的布局都需要容器。<mx:Application>标签实际上就是一个容器。每个容器都有一定的规则来确定子元素的排列方式,也就是本文讨论的FLEX容器布局规则。
VBox
子元素沿垂直方向排列。每个子元素都会绘制在前一个子元素的下方。
HBox
子元素沿水平方向排列。每个子元素都会绘制在前一个子元素的右方。
Canvas
按开发者指定的x坐标与y坐标绘制子元素。如果没有指定坐标,则所有的子元素都绘制在容器的左上方。例如,如果在Canvas中添加一个Button控件而不为其指定坐标,那么Button就被呈现在Canvas的左上角,默认的(0,0)位置。
Application
通过使用layout属性,Application布局能设置成类似VBox、HBox或Canvas容器中的任何一种方式。
Tile
将其子元素排列成一个或者多个横行或者竖列,在需要时增加新行或者新列。所有的Tile容器单元格大小都相同。Flex将Tile容器的单元格排列在正方形网格中,每一个单元格内放入一个子元素。布局方式由direction属性决定。
Pnael
Box容器的子类。Panel容器可以像VBox、HBox或者Canvas容器之中的任何一种那样布局,这取决于指定的layout属性(默认为absolute,与Canvas一样)。除了可以包含子元素,Panel容器还提供了标 ......

[转]flex中Popup窗口访问父窗口的4种方法以及相互传值


1.如果使用MVC框架,相信这并不是一个问题。而如果没有使用的话,可以用类似的方法设置一个单例,子窗口和父窗口通过这个单例来交互消息,如果需要解耦,请发送自定义事件。总之,只要按照MVC思路来做就可以了。
2.类似JS,在子窗口的构造函数里增加一个参数,将父窗口传参进去。MXML没有构造函数,用一个属性来保存父窗口引用也可以。
3.无论是createPopUp还是addPopUp,他们都有一个返回值,得到子窗口的实例。可以对这个实例监听remove事件,并在这个事件中直接读取子窗口需要返回给父窗口的属性。(记得要将这个事件最终移除)
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Panel x="94" y="178" width="503" height="347" layout="absolute">
<mx:TextInput x="134" y="64" id="tit_usr" text="username"/>
<mx:TextInput x="134" y="125" id="tit_psw" text="password"/>
<mx:Button x="171" y="209" ......

在FLEX Panel的Title上添加控件实例

一、自定义Panel组件
package test
{
    import mx.containers.Panel;
    import mx.core.UIComponent;
   
    /**
    * 自定义Panel
    * **/
    public class MyPanel extends Panel
    {
            import mx.controls.LinkButton;
            import flash.events.MouseEvent;
            import flash.events.Event;
            private var _cusContr:UIComponent;//客户UI组件
           
            public function get cusContr():UIComponent{
                return _cusContr;
      ......

flex 画虚线矩形算法

选定矩形的一个顶点为起点,开始画
x0:顶点横坐标
y0:顶点纵坐标
x1:水平线上另一顶点的横坐标
y1:水平线上另一丁点的纵坐标
 private function drawDottenRect(g:Graphics,
                   x0:Number,
                   y0:Number,
                   x1:Number,
                   y1:Number):void{
             
             drawDottedHorizontalLineTo(g,y0,x0,x1);
             drawDottedVerticalLineTo(g,x0,y0,y1);
     &nbs ......

Flex Autocomplete组件的使用实例

测试文件代码如下:导入com.hillelcoren.components包
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
 xmlns:mx="http://www.adobe.com/2006/mxml"
 xmlns:hc="com.hillelcoren.components.*"
 xmlns:classes="com.hillelcoren.components.autoComplete.classes.*"
 xmlns:local="*"
 width="100%" height="100%" color="#000000"
 verticalAlign="top" horizontalAlign="left"
 paddingLeft="20" paddingTop="15" paddingBottom="20" paddingRight="20"
 initialize="init()">
    
 <mx:Script>
  <![CDATA[
   import mx.utils.ObjectUtil;
   import mx.events.MenuEvent;
   import com.hillelcoren.components.AutoComplete;
   import mx.core.Application;
   import mx.core.UIComponent;
   import mx.collections.ArrayCollection;
   [Bindable]
   public var colors:ArrayCollection;
  ......
总记录数:792; 总页数:132; 每页6 条; 首页 上一页 [75] [76] [77] [78] 79 [80] [81] [82] [83] [84]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号