0

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

我的问题是,从下面的代码 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 

        }
    }                   

}
  }
4

2 回答 2

0

Alert.show("你好像没有网络摄像头。"); 而不是 trace(...) ?

于 2010-12-24T07:39:19.197 回答
0

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

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


您应该可以在 script tags 中调用您的 AS3 类,除此之外,我将向 Flex 专家留下更详细的答案。我不确定你是否可以直接将 Sprite 添加到 Flex 中,我记得 Flex 中的一个对象必须从 UIComponent 继承才能被添加到舞台,但是在这里与其他人核实,我没有使用过 Flex相当一段时间...

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

   public cld:cldAS = new cldAS();
</mx:Script>
于 2010-12-24T08:28:22.343 回答