gpt4 book ai didi

image - AS3嵌入图像类然后将这些图像放入另一个类中?

转载 作者:行者123 更新时间:2023-12-01 22:43:40 25 4
gpt4 key购买 nike

例如,现在我有一个名为“Balls.as”的类。这里我加载了 10 个不同的球图像。你知道,像这样:

[Embed(source = "/ball1.png")]
[Embed(source = "/ball2.png")]

问题是,如果我生成 5 个球,这些球图像将被嵌入 5 * 5 次,对吗?如我错了请纠正我!所以我想,我不能有一个 ballimageloading 类吗?加载这些图像一次,然后加载到球中。因为我可以加载我目前想要的任何球?

最佳答案

您不需要“加载”它们,它们是嵌入的。您只需实例化图像即可。最好有一个类来管理共享资源,如下所示:

public class TextureAssets 
{
[Embed(source = "../lib/ball1.png")]
private static var Ball1:Class;

[Embed(source = "../lib/ball2.png")]
private static var Ball2:Class;

public static var ball1Texture:BitmapData;
public static var ball2Texture:BitmapData;

public static function init():void
{
ball1Texture = (new Ball1() as Bitmap).bitmapData;
ball2Texture = (new Ball2() as Bitmap).bitmapData;
}

然后你可以调用TextureAssets.init()一次(例如在 Main.as 中)当您需要位图数据时:使用 new Bitmap(TextureAssets.ball1Texture)
这样,您的程序只需使用一个位图数据所需的内存,而不是使用许多最终相同的内存。
如果您需要在保留原始位图数据的同时对位图数据执行操作,您可以使用:

var modified:bitmapData = TextureAssets.ballTexture.clone();


此外,如果您要实例化一个类中的所有球图像,最好放弃静态访问,而是在构造函数中初始化 bitmapDatas,创建一个新的 TextureAssets() 并通过变量调用纹理
(静态字段访问比直接 (.) 访问慢: http://jacksondunstan.com/articles/1690 )

关于image - AS3嵌入图像类然后将这些图像放入另一个类中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14549136/

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