0

Flex IOS パッケージャー 4.6 を介して iPad でスライド プレゼンテーションを行います。スライドは、毎日変更されるため、実行時に動的にロードする必要がある swf です。それらをコンパイルできません。

私のスライドはアニメーションで問題なくロードされ、見栄えがしますが、各スライドのアニメーションがループします。私はそれらを止めることはできません。スライド SWF を逆コンパイルすると、それぞれに stop() コマンドが表示されます。ただし、IOS はこれらの stop() を吹き飛ばすだけです (PC はそうではありません)。IOS で swf の負荷がまったくないことは興味深いことです。stop() がそれを防いだと思っていたでしょう。ただし、ロードします。IOS は stop() を尊重しません。アニメーションは美しく再生されます。他の方法でそれらを停止できますか? メインのFlexコードから外部的に?stop() なしで Flash アニメーションを停止する方法はありますか? たぶん、アニメーションを別の方法で構築しますか?私が見た別の製品がこの問題を解決したので、解決策が存在することを知っています. IOS でアニメーションを再生すると、停止します。

4

1 に答える 1

0

completeSWFLoader のイベントを使用して SWF がロードされたら、MovieClip への参照を作成してみてください。MovieClip はevent.target.content、complete イベント ハンドラーからアクセスできます。stop()その後、MovieClip を直接呼び出して、それが機能するかどうかを確認できます。以下の例を参照してください。

<?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:Script>
        <![CDATA[

            public var mc:MovieClip;

            protected function swfloader1_completeHandler(event:Event):void
            {
                mc = event.target.content as MovieClip;
                mc.addEventListener(Event.ENTER_FRAME,newFrame);
                mc.stop();
            }

            protected function newFrame(event:Event):void
            {
                if( mc.currentFrame == mc.totalFrames )
                {
                    mc.stop();
                    mc.removeEventListener( Event.ENTER_FRAME, newFrame );
                }
            }

            protected function button1_clickHandler(event:MouseEvent):void
            {
                            mc.gotoAndPlay(1);
            }

        ]]>
    </fx:Script>

    <s:SWFLoader source="[REFERENCE TO YOUR SWF]" complete="swfloader1_completeHandler(event)"/>
    <s:Button label="Play" click="button1_clickHandler(event)" />

</s:Application>
于 2011-12-15T15:37:05.760 に答える