zoukankan      html  css  js  c++  java
  • 提高SWF性能的一点技巧

    flash最另人诟病的地方就是性能差,在一个类中,如果变量越多,所占用内存就越多。在类中声明一个变量后,实例化多少个对象,就会有多少个实例变量占用内存。如例:

    package  {
    	
    	public class MyClass {
    		private var _name:String;
    		private var _target:Object;
    		public function MyClass(name:String) {
    			_name=name;
    			_target={};
    			
    		}
    		
    		
    		public function getName():String{return _name}
    		public function get target(){return _target}
    	}
    	
    }

    实例两个对象进行测试:

    var cla01=new MyClass('test class');
    var cla02=new MyClass('test class');
    trace(cla01.getName===cla02.getName,cla01.target===cla02.target);   // false  false

    受javascript的原型对象(prototype)的启发,我们把实例共用的属性或函数放在一个单例对象内,然后在类中把属性或方法指向单例中相对应的属性或函数,那么由该类实例化出来的对象的属性或方法,就会指向同一个内存,从而节省的内存提高的性能。如:

    package  {
    	
    	public class MyClass {
    		private var _name:String;
    		private var _target:Object;
    		public function MyClass(name:String) {
    			_name=name;
    			//_target={};
    			_target=Singleton.target;
    			_target.name=name;
    			
    		}
    		public function getName(){return _name}
    		public var getClobalName=Singleton.getClobalName;
    		public function get target(){return _target}
    	}
    	
    }
    
    class Singleton{
    	static public var target:Object={name:'Global Name'}
    	static public function getClobalName():String{return target.name}
    }

    测试如下:

    var cla01=new MyClass('cla01');
    var cla02=new MyClass('cla02');
    trace(cla01.getClobalName===cla02.getClobalName,cla01.target===cla02.target);   // true true
    
    trace(cla01.getClobalName()===cla02.getClobalName(),cla01.getClobalName());   // true cla02
    trace(cla01.getName===cla02.getName)  //false
  • 相关阅读:
    解决IE6不支持position:fixed的bug
    响应式Web设计基础
    多行文本溢出显示省略号(…)全攻略
    解读CSS布局之-水平垂直居
    理解CSS中BFC
    七个你可能不了解的CSS单位
    屏蔽系统热键钩子Hook程序
    Win 2008 r2 远程桌面多用户登陆,一用户多登陆配置
    把Excel转换成DataTable,Excel2003+
    DataGridView不显示未绑定的列-AutoGenerateColumns
  • 原文地址:https://www.cnblogs.com/fxair/p/2335647.html
Copyright © 2011-2022 走看看