我是建立Adobe Air应用程序的新手。找不到可以教我的教程
请帮帮我 当我google它时,谷歌会显示所有应用程序。它没有在搜索结果中给我一个教程。
我了解基本的flex概念并使用Flex Builder 4.6 IDE。
答案 0 :(得分:0)
这个问题相当广泛,所以我只是给出你需要做的基本步骤。
使用FileReference.browse()(或File.browse(),它是FileReference的子类)让用户使用本机ui选择文件。收听Event.COMPLETE。在completeHandler中,您可以访问文件的url或nativePath。 在移动系统上,这可能会限制您可以导航的文件夹。
使用Loader加载图像,或者,如果使用spark.Image或spark.BitmapImage组件来显示图像,只需将url从fileReference传递到组件的source属性即可。在任何情况下,您都必须再次侦听COMPLETE事件,以便了解图像何时加载。
要裁剪或调整图像大小,请使用Bitmap和BitmapData。 如果您正在使用Loader,则可以通过typeCasting Loader.content获取源位图数据的副本作为位图(var bmp:BitmapData =(Loader.content as Bitmap).bitmapData;)。 BitmapImage和Image都有一个可以使用的bitmapData属性。 对于裁剪:a)定义源矩形b)使用rect的宽度和高度创建一个新的BitmapData,c)在源位图上使用bitmapData.draw()方法并传入目标bitmapData和rect。 调整大小:基本相同,只需定义一个变换Matrix而不是一个Rectangle,并将其应用于draw函数。不要简单地缩小Loader / Image / BitmapImage并尝试复制它,因为这不会影响它包含位图。 您还可以组合矩阵和矩形,并一步完成所有操作。
使用它的encode()方法将bitmapData编码为jpg或png。生成的ByteArray是您的新文件内容。此步骤可能有点慢,尤其是在移动设备上。有几种解决方案可以加快速度。尝试使用“JPEGEncoder [air]”
保存文件。这里有很多选择。最简单的是使用File.browseForSave()。这样,用户可以使用本机ui选择文件对话框的名称和路径。如果您希望在动作脚本中执行此操作,还可以使用FileStream.writeBytes()。
这是一个非常粗略的概述如何实现您的目标,远非明确细节,也不是唯一的方法。但它应该让你朝着正确的方向前进。希望这会有所帮助。