处理Flex上的错误情况

时间:2010-12-24 07:06:49

标签: flex actionscript-3 actionscript mxml mxmlc

我有以下AS代码。我注意到如果应用程序使用webcamera,那么除非主应用程序关闭,否则任何辅助应用程序都不能使用它。

我的问题是,从以下代码1.我们可以捕获这个条件 2.如果没有检测到摄像头如何发出警报,因为它是一个AS代码

修改 文件名是cldAS.as     现在如何从any.mxml文件中调用cldAS()。一些例子将不胜感激

 package org.com
 {
import flash.display.Sprite;
import flash.media.*;
import flash.net.*;


public class cldAS extends Sprite
{
    public function cldAS()
    {
        var cam:Camera =  Camera.getCamera();
        if(cam != null)
        {   

            cam.setMode(640, 480, 30);
            var video:Video = new Video(300, 450);
            video.attachCamera(cam);

            addChild(video);
        }
        else
        {
            trace("No Camera Detected");
                              //How to give an alert here 

        }
    }                   

}
  }

2 个答案:

答案 0 :(得分:0)

Alert.show(“你似乎没有网络摄像头。”); 代替 跟踪(...)?

答案 1 :(得分:0)

警报仅在Flex中可用,在AS3中你应该真正实现自己的解决方案,另一方面,因为Alert是一个Javascript函数,你也可以使用ExternalInterface来调用它。

就实现您自己的解决方案而言,至少您需要一个TextField来显示您的消息,您可以通过发送一个带有消息属性的CustomEvent来提供哪个文本,该消息属性只需要一个String。创建自己的Alert类不需要太多工作。它将位于您的应用程序之上,您可以在接收CustomEvent时切换可见性并使用“关闭”按钮来隐藏它。


您应该能够在脚本标记内调用AS3类,除此之外我会给Flex专家留下更详细的答案。我不确定你是否可以将一个Sprite直接添加到Flex中,因为我记得Flex中的一个对象必须从UIComponent继承才能被添加到舞台但是请与其他人一起查看,我没有使用过Flex很长一段时间......

<mx:Script>
   import org.com.cldAS;

   public cld:cldAS = new cldAS();
</mx:Script>
相关问题