
[英]as3, flash cs4 pro for AIR - import flash.fileSystem.*
[英]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.