如何在舞台上静态创建 Video 对象?

Posted

技术标签:

【中文标题】如何在舞台上静态创建 Video 对象?【英文标题】:How do I create Video object statically on stage? 【发布时间】:2012-05-13 06:22:50 【问题描述】:

不用说我是 Flash 的初学者。我想将视频对象添加到我的舞台。我怎么做?在我的组件窗口中,我看到的关闭组件是 FLVPlayback。我想展示我的网络摄像头。好吧,我的舞台有一个 FLVPlayback 实例,我将其命名为 video。

然后我尝试使用以下方式显示网络摄像头:

cam = Camera.getCamera();
            if(cam != null)
            
                cam.setQuality(144000, 85);
                cam.setMode(320, 240, 15);
                cam.setKeyFrameInterval(60);

                video.attachCamera(cam);


            

单击按钮但我收到此错误:

1061: Call to a possibly undefined method attachCamera through a reference with static type fl.video:FLVPlayback.

注意:网络上的所有示例都是动态创建视频的。它以这种方式工作,但我只想在舞台上创建我的视频对象并正确定位它。我不想在运行时使用 new 创建它。

【问题讨论】:

【参考方案1】:

从舞台上移除 FLVPlayback 对象并完全摆脱它,这样它就不会再阻塞名称视频了。

然后像这样更改您的代码:

import flash.media.video; //here you get the right video class from flash library



var video = new Video(); // this will work after the import is done
cam = Camera.getCamera();

if(cam != null)

   cam.setQuality(144000, 85);
   cam.setMode(320, 240, 15);
   cam.setKeyFrameInterval(60);

   video.attachCamera(cam); 

    addChild(video) // brings video object to stage so its visible

您使用了错误的组件,但您想先创建一个 Video 实例,然后将 cam 附加到它...您所做的大部分都是正确的

【讨论】:

您好,谢谢,但我没有提到我不想使用 new 创建 Video 对象吗?请看 player_03 的回答。【参考方案2】:

根据您的错误消息,“video”是FLVPlayback 的一个实例,根据文档,它包装了一个VideoPlayer 对象。看起来 FLVPlayback 提供了与 VideoPlayer 相同的大部分方法,这就是为什么您会混淆这两个方法,但 FLVPlayback 没有提供的一种方法是 attachCamera()。

试试这个:

video.getVideoPlayer(video.activeVideoPlayerIndex).attachCamera(cam);

【讨论】:

以上是关于如何在舞台上静态创建 Video 对象?的主要内容,如果未能解决你的问题,请参考以下文章

如何删除舞台上所有静态形状的子代?

如何获取动态创建的 Flash 舞台上的 MovieClip 名称?

Actionscript:如何创建一个注册hitTestObject的计数器并在主舞台上显示得分?

Actionscript:如何创建一个计数器来注册一个 hitTestObject 并在主舞台上显示分数?

舞台上的对象未在构造函数之外初始化

如何在 AS2 中动态创建 Video 对象并将其添加到 MovieClip?