2011-12-14 23 views
0

我通過Flex IOS包裝器4.6在iPad上進行幻燈片演示。幻燈片是瑞士法郎的,必須在運行時動態加載,因爲它們每天都在變化。無法編譯它們。IOS不授予ActionScript停止()命令,所以動畫重複 - 我可以阻止它們嗎?

我的幻燈片加載的動畫效果很好,看起來不錯 - 但每個幻燈片循環上的動畫。我無法阻止他們。當我反編譯幻燈片SWF的時候,我看到每個都有stop()命令。 IOS只是通過這些停止()的吹(雖然(PC不))。有趣的是,瑞士法郎的IOS負載。我以爲stop()會阻止這一點。他們儘管加載。 IOS只是不尊重stop()的。動畫玩得很漂亮。我能以其他方式阻止他們嗎?也許從我的主要Flex代碼外部?有沒有停止Flash動畫不停止()?也許建立不同的動畫?我見過的另一個產品解決了這個問題,所以我知道存在一個解決方案。當他們在IOS上播放動畫時,他們會停下來。

+0

你使用Loader類嗎?你能發佈你用來加載SWF的代碼嗎? – eterps 2011-12-14 23:21:54

+0

使用Flex 4.6 SWFLoader。只需使用幻燈片的URL路徑設置源媒體資源即可。很簡單。問題可能不在那裏。 SWF的加載正常。 – Robert 2011-12-15 15:01:26

回答

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> 
相關問題