gpt4 book ai didi

image - 在 ActionScript 3 中将 JPG 读入 BitmapData(JPG 位于 APK 文件内)

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

我正在使用 Adob​​e AIR 为我的 Android 手机制作 APK 文件。 APK包内有一个SWF文件,在该SWF文件所在的同一文件夹中有一个名为“images”的子文件夹,其中包含image.jpg。

我试图在运行时将该 image.jpg 读入程序,但无法获取它的位置(程序似乎没有找到它。

这就是我正在尝试的:

var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
loader.load(new URLRequest("images/image.jpg"));
while (bitmapData==null) {} //wait until loaded
return bitmapData;

onComplete 函数设置 bitmapData 字段。但是,COMPLETE 事件永远不会发生,因此 while 循环永远不存在。

我也尝试过:

loader.load(new URLRequest("/images/image.jpg"));
loader.load(new URLRequest("app:/images/image.jpg"));
loader.load(new URLRequest("app-storage:/images/image.jpg"));
loader.load(new URLRequest("file:/images/image.jpg"));

这些都不起作用。

即使尝试不使用 APK 文件,仅运行生成的 SWF 文件(图像子文件夹与 SWF 文件位于同一文件夹中),我也无法使其工作。

我无法将 JPG 嵌入到 SWF 文件本身中,因为我需要大量图像文件,而在制作这么大的 SWF 文件时,Flash CS6 会耗尽内存(从外部读取图像也意味着很多)更少的编译时间)。

有什么想法吗?如何将外部 JPG 文件放入 BitmapData 中?请记住,图像不在 APK 文件之外,而是打包在其中。

注意:稍后我还会将其导出到 iOS ipa 包中,因此它也必须在那里工作。

<小时/>

编辑,因为由于我的声誉,我无法 self 回答。

Strille 让我认识到 ActionScript 虚拟机是单线程的。

因此不可能让线程休眠(等待)加载图像。相反,我必须重写大量代码,以便在调用 onComplete 函数时停止并继续。

我之前尝试过的这件事确实有效,但由于 while 循环而无法完成:

loader.load(new URLRequest("app:/images/image.jpg"));

最佳答案

如果我没记错的话,你应该可以这样做:

loader.load(new URLRequest(new File("app:/images/image.jpg").url));

由于我们使用的是 File 类,因此上述内容不会在 Flash Player 中运行,只能在 iOS 或 Android 上运行。

关于image - 在 ActionScript 3 中将 JPG 读入 BitmapData(JPG 位于 APK 文件内),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12990242/

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