Mar 22

前两天我在折腾Flex的VideoDisplay控件并且好奇为什么我的简单测试代码无法通过。原因是我的服务器无法连接以至无法读取Flash媒体文件(FLV)。于是我很快的敲下了下面的代码利用stateChange事件来监听,来看VideoDisplay控件所得到的connectionError的状态(返回值是否为VideoDisplay.CONNECTION_ERROR常量)。

接下来的例子演示了如何监听stateChange事件来判断VideoDisplay控件是否返回了VideoEvent.CONNECTION_ERROR

下面是完整代码:


Download: main.mxml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" backgroundColor="white"  viewSourceURL="srcview/index.html">   
  3.  
  4.     <mx:Script>
  5.         <![CDATA[
  6.             import mx.events.VideoEvent;
  7.             import mx.controls.Alert;   
  8.  
  9.             private function doStateChange(evt:VideoEvent):void {
  10.                 switch (evt.currentTarget.state) {
  11.                     case VideoEvent.CONNECTION_ERROR:
  12.                         evt.currentTarget.visible = false;
  13.                         Alert.show(evt.currentTarget.source, "Unable to connect to video");
  14.                         break;
  15.                 }
  16.             }
  17.         ]]>
  18.     </mx:Script>
  19.     <mx:VideoDisplay source="http://blog.minidx.com/flash/video/404.flv" stateChange="doStateChange(event);" />   
  20.  
  21. </mx:Application>
下面是Demo(可以右键或点击这里察看源代码):

原文作者:Peter deHaan 翻译:minidxer

written by Minidxer  |  tags: , , , , , ,

Related Post

Leave a Reply