【问题标题】:How to add in .as with a package int MXML如何使用包 int MXML 添加 .as
【发布时间】:2012-03-21 08:02:42
【问题描述】:

如何在 .as 中添加类扩展 Sprite ? 我们在 Flash Professional 中创建了 Easy1,通过 FMS 为 2 个用户创建实时流媒体视频,现在我们想将 easy1 结合到 HelloFlerry 中以调用 Flash-Java 原生进程。

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"  
                       xmlns:s="library://ns.adobe.com/flex/spark" 
                       xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="600" minHeight="400" 
                       xmlns:flerry="net.riaspace.flerry.*" 
                       xmlns:easy1="Easy1.*"> 
    <easy1:Easy1 label="Easy1"/> 
    <easy1:Script source="Easy1.as"/> 



package Easy1
    {
        import flash.display.Sprite;
        import flash.events.NetStatusEvent;
        import flash.net.NetConnection;
        import flash.net.NetStream;
        import flash.media.Camera;
        import flash.media.Microphone;
        import flash.media.Video;

        public class Easy1 extends Sprite
        {
            private var nc:NetConnection;
            private var good:Boolean;
            private var rtmpNow:String;
            private var nsIn:NetStream;
            private var nsOut:NetStream;
            private var cam:Camera;
            private var mic:Microphone;
            private var vidLocal:Video;
            private var vidStream:Video;
            public function Easy1()
            {
                trace("Hello testing");
                rtmpNow = "rtmp://localhost/LiveStreams";
                nc=new NetConnection();
                nc.connect(rtmpNow);
                nc.addEventListener(NetStatusEvent.NET_STATUS,checkCon);
                setCam();
                setMic();
                setVideo();
            }
            private function checkCon(e:NetStatusEvent):void
            {
                good = e.info.code == "NetConnection.Connect.Success";
                if (good)
                {
                    nsOut = new NetStream(nc);
                    nsOut.attachAudio(mic);
                    nsOut.attachCamera(cam);
                    nsOut.publish("left","live");
                    nsIn = new NetStream(nc);
                    nsIn.play("right");
                    vidStream.attachNetStream(nsIn);
                }
            }
            private function setCam()
            {
                cam = Camera.getCamera();
                cam.setKeyFrameInterval(9);
                cam.setMode(240,180,15);
                cam.setQuality(0,80);
            }
            private function setMic()
            {
                mic = Microphone.getMicrophone();
                mic.gain = 85;
                mic.rate = 11;
                mic.setSilenceLevel(15,2000);
            }


            private function setVideo()
            {
                vidLocal = new Video(cam.width,cam.height);
                addChild(vidLocal);
                vidLocal.x = 15;
                vidLocal.y = 30;
                vidLocal.attachCamera(cam);
                vidStream = new Video(cam.width,cam.height);
                addChild(vidStream);
                vidStream.x=(vidLocal.x+ cam.width +10);
                vidStream.y = vidLocal.y;
            }
        }
    }

【问题讨论】:

  • 非常模糊的问题,代码太多。考虑更正您的语法并仅包含所需的代码。

标签: actionscript-3 flash flash-builder mxml


【解决方案1】:

MXML 是一个模板,它有效地为您创建包声明,因此一旦您尝试添加自己的一个,您将重复包定义,这是不允许的。

你也不能在

如果你必须声明包和类 - 使用 *.as 文件。如果您希望使用 MXML 模板为您声明它们 - 那么请不要自己声明它们。你不能同时拥有两者。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-16
    • 1970-01-01
    • 1970-01-01
    • 2011-05-25
    • 1970-01-01
    • 2013-03-02
    • 2012-07-27
    • 2012-12-09
    相关资源
    最近更新 更多