0

我通过 Flex IOS packager 4.6 在 iPad 上做幻灯片演示。幻灯片是 swf,必须在运行时动态加载,因为它们每天都在变化。不能编译进去。

我的幻灯片可以很好地加载动画并且看起来很棒 - 但是每个幻灯片循环上的动画。我无法阻止他们。当我对幻灯片 swf 进行反编译时,我看到每个都有 stop() 命令。IOS 只是被这些 stop() 所困扰(PC 不会)。有趣的是 IOS 上的 swf 负载。我原以为 stop() 会阻止这种情况。他们确实加载了。IOS 只是不尊重 stop() 的。动画播放精美。我可以用其他方式阻止他们吗?也许在我的主要 Flex 代码外部?有没有办法在没有 stop() 的情况下停止 Flash 动画?也许以不同的方式构建动画?我见过的另一个产品已经解决了这个问题,所以我知道存在解决方案。当他们在 IOS 上播放动画时,他们会停止。

4

1 回答 1

0

complete使用SWFLoader 事件加载 SWF 后,尝试引用 MovieClip 。可以从event.target.content完整的事件处理程序中访问您的 MovieClip。然后,您可以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 回答