【问题标题】:Why won't Flex Load My Images为什么 Flex 不能加载我的图像
【发布时间】:2023-03-05 06:52:01
【问题描述】:

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

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

更新你不懂我,我正在尝试使用 FileReference 类从桌面加载图像,图像显示成功,但是 saveAsBitmap() 方法后的 origBitmap 为 null

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"/>

//.....

【问题讨论】:

  • 显示一些代码。你的图片嵌入了吗?还是您通过 URL 加载它们?是什么让您认为这立即是一个安全沙盒问题?
  • 我更改了您的标题以更准确地反映您的实际问题。

标签: flash apache-flex


【解决方案1】:

由于沙盒安全错误,您没有加载图像。您需要将crossdomain.xml 添加到存储图像文件的服务器。

我相信 adobe 最近放宽了对位图的跨域限制。但是,我认为您仍然无法操作 bytearray 数据。

【讨论】:

    【解决方案2】:

    请发布您的代码。我的猜测是,当您移动 swf 时,您并没有同时移动图像或更改代码以反映新位置。但是,如果没有看到您的代码,我们就无法知道。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-04
      • 1970-01-01
      相关资源
      最近更新 更多