简介 - 我正在使用Flash CS5.5开发iOS游戏。在我的游戏中,我正在通过相机胶卷加载图像,并将使用游戏中的图像。我希望在用户重新开始游戏时重新加载图像。
问题 - 有没有办法再次访问此类图像而无需打开相机胶卷界面。
我可以使用flash.display.Loader类吗?我需要做或设置什么特别的东西?或者还有另一种方式吗?
我尝试过保存文件,这是从选择图像时调度的MediaEvent中提供的。
但是我没有运气使用loader对象中给出的URL。我使用此页面中的示例作为我的基础:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/CameraRoll.html。
答案 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;
}