0

我需要显示存储在数据库中的图像。我正在将具有公共 Byte[] Imagen 字段的 C# 类 Digital 映射到具有公共 Imagen:Object/ByteArray 属性的 AS3 类 Digital。我使用 Fluorinefx 作为经纪人。

我正在尝试使用 s:BitmapImage,分配 .source=Imagen,但没有出现图形。

我是否需要以某种方式转换 Imagen 属性才能分配 BitmapImagen 的源?

我正在使用 flex 4.5。任何帮助我都会感激。

编辑:

调试,真正的错误是:

TypeError:错误 #1034:类型强制失败:无法将 []@e49c629 转换为 flash.utils.ByteArray。

这是真正的问题,也许是 Fluorinefx 的问题?

4

1 回答 1

0

好的,这就是我解决这个问题的方法,显然 Fluorine 的 C# byte[] 类型处理存在一些问题;这个映射发生了一些不好的事情:(AS3)ByteArray <== byte[] (C#)。

参考Pedro Cruz的这个答案,我不得不在 C# Digital 类中创建另一个字段:

FluorineFx.AMF3.ByteArray ImagenPresentation;

并使用BytesToByteArray建议的函数从 ImagenPresentation获取属性返回此正确类型 (FluorineFx.AMF3.ByteArray) :

get 
   { 
        return BytesToByteArray(Imagen);
   }

最后,这个新字段映射到 AS3 中的 ImagenPresentation:ByteArray。

有点乱,但有效!..也许这可以帮助其他人,非常感谢。

于 2012-03-14T21:02:54.670 回答