0

私は ActionScript を初めて使用し、URLStream からバイトを取得する際に問題があります。

URL に接続して、この URL からバイトを取得しようとしています。

作成して trueprivate var urs:URLStream;urs.connected返します。次に、この URL からバイトを取得します。私のコードは次のとおりです。

public class myClass extends MovieClip
{
    private var urs:URLStream;
    private var ns:NetStream;
    private var urr:URLRequest;
    private var textStr:TextField;

    public function myClass()
    {
        var urr:URLRequest;
        var urs:URLStream;
        urr=new URLRequest("http://myserver/video/video.flv");
        urs=new URLStream();
        urs.addEventListener(flash.events.ProgressEvent.PROGRESS,progresHnd);
        urs.addEventListener(flash.events.Event.COMPLETE,completeHnd);
        urs.addEventListener(flash.events.Event.CLOSE,closeHnd);
        urs.addEventListener(flash.events.Event.OPEN,openHnd);
        urs.load(urr);

        if (urs.connected)
        {
            var myint:int = urs.readByte();
            textStr.text = "success";
            addChild(textStr);
        }
        else 
        {
            textStr.text = "urs not connected";
            addChild(textStr);
        }
    }
}

コードは で失敗しましたurs.readByte();。(エラー #2030 が発生している可能性がありますが、よくわかりません)

誰かがこれの解決策を手伝ってくれますか? (または、バイトを取得する別の方法を提供します)

ありがとう!

4

1 に答える 1

1

Connected は、サーバーが接続されているかどうかを意味し、データの読み込みが完了したことを意味するものではありません。バイトを読み取るには、データのロードが完了するまで待つ必要があります。つまり、完全なハンドラーでバイトを読み取ることができます。

public function completeHnd(evt:Event):void {
    var myint:int = urs.readByte();
}

追加の注意として、コンストラクターでvar urs:URLStream;およびを追加するとvar urs:URLStream;、クラス メンバーursおよびが非表示になりursます。したがって、コンストラクターからこれらの宣言を削除する必要があります。

// remove these two lines from constructor
var urs:URLStream;
var urr:URLRequest;
于 2014-03-05T09:42:21.307 に答える