apache-flex 在Flex中显示图像

cvxl0en2  于 2022-11-01  发布在  Apache
关注(0)|答案(2)|浏览(158)

我用过Haex和actionscript编程,但我对flex是新手。我的问题是:如果我想在AS 3中从服务器(blazeds)获取图像,我会将其加载到Loader加载程序中,然后将其添加到一些加载程序中,例如MovieClip。我是否应该在flex中加载图像?或者是否有一些通用的flex模式可以实现这一点?
另一个问题是.如果我有一个形象blazeds服务器什么会更好的方式来得到它:通过java传递(即读取,然后传递给客户端)还是直接使用Loader
先谢谢你!

qij5mzcb

qij5mzcb1#

BlazeDS通常用于发送在AMF中序列化的对象。对于图像来说,这样做似乎有些过分,因为它将以ByteArray的形式发送,但您将花费大量资源来处理它。可能有一种更好的方法,特别是当图像是静态内容时,将其作为静态文件提供给运行BlazeDS的任何服务器。
在Flex中使用图像的方法有很多种。Flex框架的一些特定方法包括:将其用作Image组件的源代码,但是,对于许多任务来说,此组件有点太大了。例如,如果使用此组件,创建同一图像的拼贴将非常低效。有一个BitmapImage,它是Image的轻量级副本,但它可能不具有所有需要的功能(它不继承自InteractiveObject,所以它不能响应鼠标事件。2它也只能作为Spark组件使用。
如果我需要使用图像,我通常会这样做:
1.如果我需要在程序中缓存它们(以重用它们的BitmapData),我会编写一个类,负责加载和缓存结果。
1.我编写了一个非常简单的组件,它扩展了UIComponent,并使用其graphics属性将给定的BitmapData绘制到其中。这通常允许在多个组件中简单地共享同一个BitmapData
1.让此组件重写updateDisplayList方法,以便缩放或修剪它所使用的BitmapData
我确实使用Loader来加载图像,因为真的没有其他方法来加载图像。其他组件,如ImageSWFLoaderBitmapImage也使用Loader,它们不会在此基础上添加任何有价值的内容。
如果您需要slice-9-grid功能,那么Spark组件集中可能内置了一些功能,但我还是宁愿自己做,而不是依赖它。Flex组件实际上并不值得信任。

vuktfyat

vuktfyat2#

不需要。设置spark.components.Image对象的source属性将加载图像。
对于加载swf文件,可以以相同的方式使用mx.controls.SWFLoader

相关问题