flex类的深复制(扩展)
1:假如你要深复制一个类A
public class A
{
public var vo:B
}
你首先要做的是注册类,例如:
public static function registerClass():void
{
//把子类注册
PackUtil.registerClass(B);
}
//接下来就是克隆:
var cloneA:A=clone(A);
cloneA就是我们想要的对象了。
//****************克隆的实现方法***********************//
//克隆一个vo对象
public static function clone(o:Object):Object
{
var qClassName:String = getQualifiedClassName(o);
var objectType:Class = getDefinitionByName(qClassName) as Class;
registerClassAlias(qClassName, objectType);
var copier : ByteArray = new ByteArray();
copier.writeObject(o);
copier.position = 0;
return copier.readObject();
}
//向amf注册类,以便反转的时候能找到该类
public static function registerClass(classObj:Object):void
{
var qClassName:String = getQualifiedClassName(classObj);
var objectType:Class = getDefinitionByName(qClassName) as Class;
registerClassAlias(qClassName, objectType);
}
相关文档:
一、C++服务器端
(用的是Visual Studio 2008(05,03的应该也可以,VC++的可能需要稍微改动))
代码如下:
#include <winsock2.h>
#include <stdio.h>
#include <windows.h>
#include <iostream>
using namespace std;
#pragma comment(lib,"ws2_32.lib")
void main(){ ......
Flex4和Flex3的区别在这里就不多说了,有兴趣可以上网找资料。
本次的实践将通过测试用例来说明Flex4中不同Theme的应用效果
在Flash Builder4中出现了两个命名空间
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/halo"
相应的,控件也出现了两种不同的风格,创建Theme.mx ......
此例展示了如何在 Flex 4 中为 Halo 控件设置旧的 Halo 皮肤,而不是新的 Spark 皮肤。
<?xml version="1.0" encoding="utf-8"?>
<!-- http://www.slsay.com/archives/131 -->
<s:Application name="Spark_Halo_theme_test"
xmlns:fx="http://ns.adobe.com/mxml/2009"
&nbs ......
一、为什么要重写组件
1、在FLEX已有组件无法满足业务需求,或是需要更改其可视化外观等特性时,直接进行继承扩展。举例,继承BUTTON组件的长文本却不自动换行的自定义控件。
2、为了模块化设计或进一步重用,需要对FLEX组件进行组合。比如一个包括TEXTAREA,BUTTON的复合控件。
二、重写组件需要经常换位思考的三个角色
......
经过反复的调试跟踪,在cairngorm框架不能地控制数据更新操作的触发顺序,无法保证同时读取“模型”层的点类(equip)、线类(link)实例对象的数据。
看来,只能在控制mxml控件中对控件进行控制了。 ......