为什么不会Flex加载我的图像

为什么不会Flex加载我的图像

问题描述:

我有Flex应用程序(而不是AIR),它们加载图像并执行一些效果,应用程序在Flash Builder和调试文件夹中运行良好。但是,当我试图将* .swf复制到另一个本地文件夹时,出现图像加载问题。为什么不会Flex加载我的图像

任何人都可以帮助我吗?可能需要指定一些限制或规则?

UPDATE你不理解我,我试图使用FileReference类加载桌面图像,图像显示成功,但origBitmap saveAsBitmap()方法是空后

public function loadImage():void 
{ 
    fileRef.addEventListener(Event.SELECT, onFileSelected); 
    var textTypeFilter:FileFilter = new FileFilter("Images (*.jpg, *.jpeg, *.gif,*.png)", "*.jpg; *.jpeg; *.gif; *.png"); 
    fileRef.browse([textTypeFilter]); 
} 

public function onFileSelected(evt:Event):void 
{ 

    fileRef.addEventListener(Event.COMPLETE, onComplete); 
    fileRef.load(); 

} 

public function onComplete(evt:Event):void 
{ 
byteArr = fileRef.data as ByteArray; 
ldr = new Loader(); 
ldr.loadBytes(byteArr); 
fileRef.removeEventListener(Event.SELECT, onFileSelected); 
fileRef.removeEventListener(Event.COMPLETE, onComplete); 
callLater(show); 
} 

public function show():void 
{  
currImg.source = ldr; 
callLater(saveAsBitmap); 

} 
public function saveAsBitmap():void 
{ 
bd = new BitmapData(currImg.contentWidth * currImg.scaleX, currImg.contentHeight * currImg.scaleY,true); 
bd.draw(currImg as IBitmapDrawable); 
origBitmap = new Bitmap(bd); 
} 

//..... 

<mx:Image id="currImg"/> 

//..... 
+3

显示一些代码。你的图像是否嵌入?或者你是通过URL加载他们?是什么让你认为这是一个安全沙箱问题? – JeffryHouser 2011-06-15 20:57:44

+0

我将您的标题更改为更准确地反映您的实际问题。 – JeffryHouser 2011-06-15 20:58:18

你是不是由于沙箱安全性错误而加载图像。您需要将crossdomain.xml添加到存储图像文件的服务器。

我相信adobe最近放宽了他们对位图的跨域限制。不过,我认为你仍然无法操纵字节数组数据。

请张贴您的代码。我的猜测是,当您移动swf时,您并未将图像一起移动,或者更改代码以反映新位置。但是,如果没有看到您的代码,我们无法知道。