繁体   English   中英

Flash CS4 Pro入门

[英]Getting started in Flash CS4 Pro

我需要一些非常简单的Flash应用程序。

只需一个按钮即可调用动作脚本。 该动作脚本将调用

private var m_MicCnx:NetConnection;         //connection over the server
private var m_MicStream:NetStream;          //Audio Output  
private var m_Microphone:Microphone;        //micro, attach with m_MicStream's audio content

m_MicCnx =new NetConnection();
m_MicCnx.client = this;
m_MicCnx.addEventListener(NetStatusEvent.NET_STATUS,HandlerMicCnxStatus);
m_MicCnx.connect(m_strMicUrl);
m_MicStream.publish ("mp3:myStream", "live");


m_Microphone=Microphone.getMicrophone();
m_Microphone.gain=85;
m_Microphone.rate=11;
m_Microphone.setSilenceLevel(15,2000);

private function HandlerMicCnxStatus(e:NetStatusEvent):void 
{
    var isConnected:Boolean;        //tells whether the connection has succeded

    isConnected=e.info.code=="NetConnection.Connect.Success";
    if (isConnected) 
    {
        m_MicStream=new NetStream(m_MicCnx);
        m_MicStream.attachAudio (m_Microphone);
    } 
}

我认为这是我可以获得的最简单的设置,它将麦克风发布到RTMP流。 这是尝试剃除较大的产品。 该演示将帮助第三方为mp3创建RTMP流阅读器。

我的问题是:如何从这段代码过渡到Flash应用程序? 到目前为止,我发现的大多数教程都是关于使用菜单或创建非常复杂的动画的。 我只需要一个按钮即可调用此按钮,或者自动加载即可。

在哪里可以获得简单易懂的教程? 我知道到处都会有大量的单击,但是如果您能在这里解释,那就太好了。

我将像您第一次使用Flash一样进行解释。

像任何其他语言一样,您也具有某种引导文件和主要功能。 在Flash中,您有一个称为文档类的东西。 启动应用程序时将调用文档类。 在这里阅读更多有关它的信息

要使用文档类,请在.fla文件的属性中指定它,如下所示:

闪光灯设定

这告诉闪光,它应该使用类Main在文件Main.as作为文档类。

这是我在示例中使用的文档类的样子:

package{
    import flash.display.Sprite;

    public class Main extends Sprite{
        public function Main(){
            trace("Application started!");
        }
    }
}

实例化Main类并调用构造函数,从而将“应用程序启动”跟踪到控制台。 该文档必须继承一个类,该类是DisplayObject的子类。 如果您希望能够使用框架操作,请使用MovieClip ,如果您不打算在文档类中使用任何框架操作,请使用Sprite

下一步是将代码移到可以从文档类调用的单独的类中。 因此,您将获得如下所示的项目结构:

项目结构

您的MicrophoneRTMP.as将如下所示:

package{
    import flash.net.NetConnection;
    import flash.net.NetStream;
    import flash.media.Microphone;
    import flash.events.NetStatusEvent;

    public class MicrophoneRTMP{
    private var m_MicCnx:NetConnection;         
    private var m_MicStream:NetStream;          
    private var m_Microphone:Microphone;  

    public function MicrophoneRTMP(){
        this.setupMicrophone();
        this.setupConnection();
    }

    private function setupMicrophone():void{
        m_Microphone = Microphone.getMicrophone();
        m_Microphone.gain = 85;
        m_Microphone.rate = 11;
        m_Microphone.setSilenceLevel(15,2000);
    }

    private function setupConnection():void{
        m_MicCnx = new NetConnection();
        m_MicCnx.client = this;
        m_MicCnx.addEventListener(NetStatusEvent.NET_STATUS,HandlerMicCnxStatus);
        m_MicCnx.connect(m_strMicUrl);
        m_MicStream.publish("mp3:myStream", "live");
    }

    private function HandlerMicCnxStatus(e:NetStatusEvent):void{
        var isConnected:Boolean;
        isConnected = e.info.code == "NetConnection.Connect.Success";
        if(isConnected){
            m_MicStream = new NetStream(m_MicCnx);
            m_MicStream.attachAudio(m_Microphone);
            trace("Microphone stream successful");
        }else{
            trace("Microphone stream unsuccessful");
        }
    }
    }
}

然后,您只需要更改Main.as即可导入并调用您的类:

package{
    import flash.display.Sprite;
    import MicrophoneRTMP;

    public class Main extends Sprite{
        public function Main(){
            myButton.addEventListener(MouseEvent.CLICK, myButtonClicked); //myButton is a button put on the stage in Flash
        }

        private function myButtonClicked(event:MouseEvent):void{
            trace("My button was clicked");
            var microphoneRTMP:MicrophoneRTMP = new MicrophoneRTMP();
        }
    }
}

注意:现在您将能够编译您的项目并开始调试MicrophoneRTMP类,其中包含一些您需要检查的错误。

在我的示例中,您可以阅读有关以下内容的更多信息:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM