gpt4 book ai didi

actionscript-3 - AS3 是否可以复制 Shape 对象?

转载 作者:行者123 更新时间:2023-12-03 01:04:24 24 4
gpt4 key购买 nike

我正在尝试制作一个可用于复制的形状。以下是我所做的事情、我正在尝试做的事情以及我遇到的困难的解释:

  • 在 Flash IDE(画笔)中手动绘制形状。
  • 创建了一个包含该形状的新影片剪辑;作为一个类导出。
  • 实例化该类(var mc:MovieClip = new shapeMovieClip())。
  • 添加对 mc 中我想要的形状的引用 (var myShape:Shape = mc.getChildAt(0) as Shape;
  • 这很完美,我现在有了自己的形状,但是如何在不实例化父级 MovieClip 类的情况下复制它 - 这可能吗?

我尝试创建一个新形状并使用 copyFrom() 图形方法,但没有效果,我相信此方法只是在引用图形上进行绘制调用时复制绘制调用,而我只有形状的引用已经画好了。

现在,我将影片剪辑扩展为 Sprite ,实例化,从父级中拉出形状并保存其引用,然后将 Sprite 清空。有谁知道以这种方式复制形状的更好、更轻量级的策略吗?

最佳答案

基本上取决于您是否需要缩放形状。如果不这样做,并且您可以使用形状的固定大小的位图表示来解决它,那么将形状绘制为 BitmapData (称为 rasterisation )并实例化 Bitmap 对象(如其他评论者),您将获得更好的性能已指出)。代码会是这样的:

var base:Sprite = new shapeMovieClip();
var bmd:BitmapData = new BitmapData(base.width, base.height, true, 0);
bmd.draw(base);
var clip1:Bitmap = new Bitmap(bmd);
var clip2:Bitmap = new Bitmap(bmd);

如果您确实需要缩放剪辑,您将使用位图获得像素化。当缩小 Bitmap.smoothing 可以在一定程度上有所帮助(旋转时也是如此),但如果您需要放大,您可能必须使用某种 mip-mapping 。这基本上是在不同比例级别创建一些形状的位图,然后根据当前比例交换它们。编码有一定的复杂性(使用辅助父级来调整比例会有所帮助),但它肯定会比使用许多形状符号(有或没有 Sprite 父级)表现得更好。

关于actionscript-3 - AS3 是否可以复制 Shape 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10436701/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com