易截截图软件、单文件、免安装、纯绿色、仅160KB

Flex中Image加载图片出错时显示默认图片的几种方法


Flex中Image加载图片出错时显示默认图片的方法主要有以下几种:
方法一:利用 brokenImageSkin 风格显示一个默认的图,只需设置CSS就行了,如下:
<mx:Style>
     Image {
         brokenImageSkin: Embed("assets/404.jpg");
     }
 </mx:Style>
 
方法二:监听Image组件的IOErrorEvent.IO_ERROR事件,代码如下:
private function errorHandler():void
{
    image.source = "assets/404.jpg";
}
<mx:Image id="image" source="http://不存在.jpg" ioError="errorHandler()"/>
方法三:继承Image类,覆盖其set source方法,如下:
override public function set source(value:Object):void
{
    if(!value || value == ""){
        value = "assets/404.jpg";
    }
    super.source = value;
}
推荐使用第三种方法,因为第一种方法跟第二种方法有个共同的缺点,如下情况:
<mx:Image id="image" source="" ioError="errorHandler()"/>
此时无论是第一种方法还是第二种方法都不会显示默认图片,而第三种方法就可以解决这个问题。
第三种方法具体实现及使用方法如下:
MyImage.as
package
{
import flash.events.IOErrorEvent;

import mx.controls.Image;

public class MyImage extends Image
{
private var defaultImage:String = "assets/404.jpg";

public function MyImage()
{
this.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
}

override public function set source(value:Object):void
{
if(!value || value == ""){
value = defaultImage;
}
super.source = value;
}

private function ioErrorHandler(event:IOErrorEvent):void
{
super.source = defaultImage;
}
}
}
Main.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:local="*">
<local:MyImage id="image" source=""/>
</mx:Application>
推荐使用第三种方法。


相关文档:

Flex BlazeDS Message Service

 消息服务(Message Service )提供发布(publish)/订阅(subscribe)机制允许Flex 应用程序发布消息、订阅消息终端(messaging destination),从而实现实时数据的推和协作。
  一、Message Service
  Message Service 提供发布(publish)/订阅(subscribe)机制允许Flex 应用程序发布消息、订阅消息终端(messaging des ......

flex 与 .net 交互【基于WebService的数据访问】

 ·下面介绍Flex与.NET的WebService的数据通信知识点;包括连接WebService,远程调用WebService方法,给WebService方法传递参数等相关知识点。
  <mx:WebServiceid="dataService"
    wsdl="http://localhost/FlashFlex/DataWebService.asmx?wsdl"
    useProxy="false">
    <mx:ope ......

Flex技术,初级问题,帮帮忙!谢谢!

今天刚接触Flex,但是当我把代码编写完成运行的时候报下了如下错误:
C:\WINDOWS\system32\Macromed\Flash\Flash10e.ocx
Flex Builder cannot locate the required debugger version of Flash Player.
You might need to install the debugger version of Flash Player 9 or
reinstall Flex Builder.
Do you want to ......

flex学习日志

*****************************************************
1-0. 安装配置工作环境
*****************************************************
1.安装jdk1.6
设置环境变量:java_home,内容为jdk安装后jdk所在目录,不是jre目录
2.安装tomcal 6.0到d:\
3.安装myeclipse 6.5
4.安装firefox及插件
  安装firefox
&nbs ......

FLEX,桌面开发程序员向WEB开发转型的替代品

     我以前一直从事桌面开发,尤其数据处理的的系统较多。使用较多的是开发工具是VFP,它有自带的数据库,也可以使用大型的数据库系统,既可以开发系统也可以用命令行进行管理数据。但,它在不久的将来就MS不再抚养这个买来的儿子了,操作的系统的换代等等多种因素影响,不管它是否会消忘,但始终也会 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号