您可以通过 Flash Builder 和 Apache Flex SDK 进行几乎任何类型的图像处理。我做了很多这种类型的工作。您可以在 ActionScript 中随意操作像素。您还可以执行巧妙的技巧来存储像素数据。例如,我用精灵和人们在舞台上画的东西制作视频。为了在最终构建的精灵中节省空间,我可以这样做:
var bitmap:Bitmap = loader.content as Bitmap;
var bitmapData:BitmapData = bitmap.bitmapData;
var byteArray:ByteArray = new ByteArray();
byteArray.writeUnsignedInt(bitmapData.width);
bitmapData.copyPixelsToByteArray(bitmapData.rect, byteArray);
byteArray.compress();
顺便说一句,如果您想在本地保存这些图像,请使用 FileStream 和 File.applicationStorageDirectory.resolvePath() 函数。
然后,当您需要将压缩字节恢复为图像时,您可以这样做:
var bytes:ByteArray = bytesFromStoredByteArray;
bytes.uncompress();
var width:int = bytes.readUnsignedInt();
var height:int = ((bytes.length - 4) / 4) / width;
var bitmapData:BitmapData = new BitmapData(width, height, true);
bitmapData.setPixels(bitmapData.rect, bytes);
API 中有许多用于操作像素的方法。您几乎可以使用 Flash Builder 和 Apache Flex SDK 做任何您想做的事情。
当我第一次学习时,我使用了 Adobe 支持的 Flex in a Week 计划。 http://www.adobe.com/devnet/flex/videotraining.html
不过,虽然 Flex 会在一周内教您有关 Flex 的知识,但我个人不建议您过于频繁地使用 Flex。我在非常有限的环境中使用 Flex,并在任何我可以使用的地方使用 ActionScript。我从未使用任何教程来学习 ActionScript。相反,每当我需要了解某些内容时,我都会查看 API,并且由于编程约定与 Java 非常相似——我已经很熟悉了——所以我很容易掌握 ActionScript。但是,如果您以前没有使用过异步语言,我建议您了解 ActionScript 中的事件模型并知道您必须使用它。你永远不应该只是运行一个循环并期望你的程序产生你认为它应该产生的东西。将 Flex 用于您要呈现的大多数 UI 组件,将 ActionScript 用于您需要实现的任何编程逻辑。
另一个需要注意的问题是,在 AS 中,您通常可以使用事件模型,但仍然会导致程序崩溃。因此,如果您有大量图像要以某种方式解压缩或操作,请放入 Timers 以防止您的程序冻结。如果我的应用程序有很多工作要做,我将允许程序的相关部分运行 20 毫秒,然后超时 50 毫秒。通过这样做,应用程序的其余部分保持可用并且人们的系统不会崩溃。
祝你好运。如果您有关于图像处理、操作或 ActionScript 的具体问题,我很乐意为您提供帮助。