2011-12-14 6 views
0

私はFlex IOSパッケージャ4.6経由でiPad上でスライドプレゼンテーションを行います。スライドはswfです。毎日変更されるため、実行時に動的にロードする必要があります。それらをコンパイルできません。IOSはActionScriptのstop()コマンドを尊重しないため、アニメーションが繰り返されるので、何とか止めることができますか?

私のスライドは、アニメーションでうまくロードされ、見た目は素晴らしいですが、各スライドループのアニメーションです。私はそれらを止めることはできません。スライドswfを逆コンパイルすると、それぞれにstop()コマンドが表示されます。 IOSはちょうどこれらのstop()に吹かれます(PCはありません)。面白いのは、swfの負荷はすべてIOSです。私はstop()がそれを妨げていると思っていただろう。彼らは負荷をかけます。 IOSはstop()の機能を尊重しません。アニメーションは美しく再生されます。他の方法でそれらを止めることはできますか?私の主なFlexコードから外部にあるかもしれませんか? stop()を使わずにFlashアニメーションを停止する方法はありますか?アニメーションを違ったものにすることはできますか?私が見た別の製品がこの問題を解決したので、解決策が存在することがわかります。彼らがIOS上でアニメーションを再生するとき、彼らは止まる。

+0

Loaderクラスを使用していますか?あなたはSWFをロードするために使用しているコードを投稿できますか? – eterps

+0

Flex 4.6 SWFLoaderの使用。スライドへのURLパスを使って、sourceプロパティを設定するだけです。ものすごく単純。おそらくそこには問題はありません。 SWFは正常に読み込み中です。 – Robert

+0

次に、ASでは、slide.source = URL;興味深い。 – Robert

答えて

0

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

<?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> 
+0

私はそれを打つことを許可しなさい。 – Robert

+0

使用されるFlashBuilderプロジェクトタイプに応じて、2つの異なる結果が発生します。私が必要とするFlexのモバイルプロジェクトにロードされると、新しい各スライドの読み込みとともに、行#15(mc.addEventListener(Event.ENTER_FRAME、newFrame))にランタイム例外がスローされます。通常のFlexプロジェクトではこの例外はスローされませんが、再生ボタンはクリップの再生を再開しません。これはクリップのコントロールを示しています。 – Robert

+0

ああ、ボタンをクリックしたときにムービークリップを最初のフレームにリセットするのを忘れてしまった.iOSの状況についてはわからないが、Flexで試してみようモバイルプロジェクトで何が起こっているかを確認してください – eterps

関連する問題