2011-06-23 12 views
0

私はFlashアプリケーションとして非常に単純なものが必要です。Flash CS4 Pro入門

アクションスクリプトを呼び出すボタンは1つだけです。そのアクションスクリプトが呼び出す

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ストリームリーダーを作成するのに役立ちます。

私の質問は、このコードスニペットからフラッシュアプ​​リケーションに移行するにはどうすればよいですか?これまでに私が見つけたチュートリアルのほとんどは、メニューの使用や非常に複雑なアニメーションの作成でした。私はちょうどこれを呼び出す単一のボタン、または自動ロードかもしれません。

ここでは簡単なチュートリアルを入手できますか?私はどこにでもクリックしてボートロードがあることを理解していますが、あなたがここでそれを説明できるなら、それはすばらしいでしょう。

答えて

1

フラッシュで初めて作業しているかのように説明します。

他の言語と同様、ブートストラップファイルとメイン機能があります。 Flashでは、ドキュメントクラスと呼ばれるものがあります。ドキュメントクラスは、アプリケーションの起動時に呼び出されます。 Read more about that here

あなたがそうのように、あなたの.FLAファイルのプロパティで指定ドキュメントクラスを使用するには:

Flash settings

これは、ドキュメントとしてファイルMain.asでクラスMainを使用する必要がありますフラッシュを伝えますクラス。

は、ここでドキュメントクラスは、私が例で使用していることを次のようになります。

package{ 
    import flash.display.Sprite; 

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

Mainクラスはインスタンス化されますと、コンストラクタが呼び出され、これによりトレースコンソールに「アプリケーションが開始さ」。ドキュメントは、DisplayObjectのサブクラスであるクラスを継承する必要があります。フレーム操作を使用できるようにするには、MovieClipを使用し、ドキュメントクラスでフレーム操作を使用しない場合は、Spriteを使用します。

次のステップでは、コードをドキュメントクラスから呼び出すことのできる別のクラスに移動します。あなたのMicrophoneRTMP.asは次のようになります

Project structure

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クラスのデバッグを開始できるようになりました。これには、必要なエラーが含まれています。

:あなたはについての詳細を読むことができます私の例では

コンセプト

関連する問題