Как добавить в .as с пакетом int MXML - PullRequest
0 голосов
/ 21 марта 2012

Как добавить в .as с расширением класса Sprite ?? Мы создали Easy1 во Flash Professional для создания потокового видео через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;
            }
        }
    }

1 Ответ

1 голос
/ 21 марта 2012

MXML - это шаблон, который эффективно создает декларацию пакета для вас, поэтому, как только вы попытаетесь добавить один из ваших собственных, вы будете дублировать определения пакета, что недопустимо.

Вы также не можете объявлять классы внутри тега . Код из тега входит в блок определения методов и свойств класса.

Если вы должны объявить пакет и класс - используйте для этого файл * .as. Если вы хотите, чтобы они были объявлены для вас с помощью шаблона MXML - ну, тогда не объявляйте их самостоятельно. Вы не можете иметь и то и другое одновременно.

...