iOS上的flash.display.Loader类

时间:2012-06-01 03:11:26

标签: ios actionscript-3 flash air flash-cs5

简介 - 我正在使用Flash CS5.5开发iOS游戏。在我的游戏中,我正在通过相机胶卷加载图像,并将使用游戏中的图像。我希望在用户重新开始游戏时重新加载图像。

问题 - 有没有办法再次访问此类图像而无需打开相机胶卷界面。

我可以使用flash.display.Loader类吗?我需要做或设置什么特别的东西?或者还有另一种方式吗?

我尝试过保存文件,这是从选择图像时调度的MediaEvent中提供的。

但是我没有运气使用loader对象中给出的URL。我使用此页面中的示例作为我的基础:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/CameraRoll.html

1 个答案:

答案 0 :(得分:0)

是的,这是可能的。您需要使用File类将图像保存到apps文档目录中,如下所示:(这使用Adobe JPGEncoder类)

f = File.documentsDirectory.resolvePath("logo.jpg"); 

stream = new FileStream();
stream.open(f, FileMode.WRITE);                                         

j = new JPGEncoder(80);
var bytes:ByteArray = j.encode(visualLogo.bitmapData);
stream.writeBytes(bytes,  0, bytes.length);
stream.writeBytes(bytes, 0, bytes.bytesAvailable);
stream.close();

//I read the file back in to test that it has been successfully written 
stream.openAsync(f, FileMode.READ); 
stream.addEventListener(Event.COMPLETE, bringBoardOn, false, 0, true);

然后使用类似的东西加载它:

f = File.documentsDirectory.resolvePath ("logo.jpg");

if (f.exists == true) {

var _urlRequest:URLRequest = new URLRequest(f.url);
loader=new Loader;
loader.load(_urlRequest);
loader.addEventListener(IOErrorEvent.IO_ERROR, function(e:IOErrorEvent):void{ trace(e) });
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, ImageLoaded, false, 0, true);     
_urlRequest = null;

}