- private function clone(source:Object):* {
- var copier:ByteArray = new ByteArray();
- trace(source is Sprite)
- copier.writeObject(source);
- copier.position = 0;
- trace(copier.length)
- var smc:Sprite =copier.readObject() as Sprite;
- return(smc);
- }
- //上面的方法只能是object
- private function clone(target:Object):Sprite {
- var targetClass:Class = target.constructor;
- var duplicate:Sprite= new targetClass()
- return duplicate;
- }
- //上面的方法必须有连接名和类
- mapArrayy[i]= clone(map["img"+mapArray[i]] as Sprite);
- mapArrayy[i].x = 50 * (i-Math.floor((i-1)/19)*19);
- mapArrayy[i].y = 50 * Math.floor((i-1)/19);
- mapArrayy[i].id="l"+i
- mapArrayy[i].addEventListener(MouseEvent.CLICK,clickHandler);
- imgmap.addChild(mapArrayy[i]);
上面是例子。
本文介绍了一种在Flash中克隆Sprite对象的方法,并通过示例代码展示了如何使用ByteArray进行对象的序列化与反序列化来实现Sprite的深拷贝。此外,还提供了一个特定于Sprite对象的克隆方法。

325

被折叠的 条评论
为什么被折叠?



