3

adobe flex で再生中の SWF ファイルを一時停止できるかどうか知りたいですか? SWF ローダーがあり、SWF ファイルを再生しますが、ファイルを一時停止する機能 (または組み込み関数) がありません。

誰でもこれで私を助けてくれますか? 最初にいくつかのコードをいただければ幸いです。:) 前もって感謝します。

4

1 に答える 1

1

を使用できます。stop();

以下は、swf の再生の例であり、制御は再生と一時停止、および移動と停止のボタンに与えられます。

<?xml version="1.0" encoding="utf-8"?>
<s:Application 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="955" minHeight="600">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>

    <fx:Script>
        <![CDATA[
            private function playHandler():void {

                var file_mc:MovieClip = fileswf.content as MovieClip;
                file_mc.play();

            }

            private function pauseHandler():void {

                var file_mc:MovieClip = fileswf.content as MovieClip;
                file_mc.stop();
            }

            private function pauseat(frame:Number):void {

                var file_mc:MovieClip = fileswf.content as MovieClip;
                file_mc.gotoAndStop(frame);
            }

        ]]>
    </fx:Script>


    <mx:SWFLoader x="0" y="0" source="abc.swf" id="fileswf"/>
    <s:Button x="0" y="200" label="Play" id="playbtn" click="playHandler()"/>
    <s:Button x="100" y="200" label="Pause" id="pausebtn" click="pauseHandler()"/>
    <s:Button x="100" y="250" label="Pause at A" id="pauseAbtn" click="pauseat(1)"/>
    <s:Button x="200" y="250" label="Pause at B" id="pauseBbtn" click="pauseat(2)"/>
    <s:Button x="300" y="250" label="Pause at C" id="pauseCbtn" click="pauseat(3)"/>
    <s:Button x="400" y="250" label="Pause at D" id="pauseDbtn" click="pauseat(4)"/>
    <s:Button x="500" y="250" label="Pause at E" id="pauseEbtn" click="pauseat(5)"/>

</s:Application>

完全を期すために、@Embed のメソッドに配置しました (SWFLoader を介して直接元の swf を取得することはできません [実行時 vs コンパイル時] が、クラスからバイトをロードすることはできます)。

<?xml version="1.0" encoding="utf-8"?>
<s:Application 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="955" minHeight="600" addedToStage="init()">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>

    <fx:Script>
        <![CDATA[

            [Embed(source="abc.swf", mimeType="application/octet-stream") ]
            public var abc_cls:Class;

            public var ldr:Loader = new Loader();

            private var file_mc:MovieClip;

            protected function init():void
            {
                ldr.loadBytes( new abc_cls() as ByteArray );
                ldr.contentLoaderInfo.addEventListener(Event.INIT, onSwfLoaded);
                swfcontainer.addChild(ldr);  
            }

            private function onSwfLoaded(e:Event):void {
                file_mc = ldr.content as MovieClip;
            }

            private function playHandler():void {

                file_mc.play();

            }

            private function pauseHandler():void {

                file_mc.stop();
            }

            private function pauseat(frame:Number):void {


                file_mc.gotoAndStop(frame);
            }       

        ]]>
    </fx:Script>


    <mx:Image id="swfcontainer" />
    <s:Button x="0" y="200" label="Play" id="playbtn" click="playHandler()"/>
    <s:Button x="100" y="200" label="Pause" id="pausebtn" click="pauseHandler()"/>
    <s:Button x="100" y="250" label="Pause at A" id="pauseAbtn" click="pauseat(1)"/>
    <s:Button x="200" y="250" label="Pause at B" id="pauseBbtn" click="pauseat(2)"/>
    <s:Button x="300" y="250" label="Pause at C" id="pauseCbtn" click="pauseat(3)"/>
    <s:Button x="400" y="250" label="Pause at D" id="pauseDbtn" click="pauseat(4)"/>
    <s:Button x="500" y="250" label="Pause at E" id="pauseEbtn" click="pauseat(5)"/>

</s:Application>

混乱をお詫びして問題を引き起こしたのは埋め込みであると確信しています。したがって、以下のファイルの一部としてswfが必要な場合は、トリックが必要です。

フレックス ワークスペースにアセットを取得する最後の方法は、 SWC Assets Methodを使用することです。

幸運を !:D

于 2010-06-09T07:24:47.257 に答える