IOS不支持ActionScript stop()命令,所以动画会重复-我能以某种方式停止它们吗?

IOS不支持ActionScript stop()命令,所以动画会重复-我能以某种方式停止它们吗?,ios,apache-flex,actionscript,flash,packager,Ios,Apache Flex,Actionscript,Flash,Packager,我通过Flex IOS packager 4.6在iPad上做幻灯片演示。幻灯片是swf,必须在运行时动态加载,因为它们每天都在变化。无法在中编译它们 我的幻灯片可以很好地加载动画,看起来很棒,但是每个幻灯片上的动画都是循环的。我无法阻止他们。当我反编译幻灯片swf时,我看到每个幻灯片上都有stop命令。IOS只是通过这些停止而不是PC。有趣的是,swf在IOS上的负载根本不存在。我原以为车站会阻止这一切。不过,它们确实很重。IOS根本不尊重停止。动画播放得很漂亮。我能用别的方法阻止他们吗?可能

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


我的幻灯片可以很好地加载动画,看起来很棒,但是每个幻灯片上的动画都是循环的。我无法阻止他们。当我反编译幻灯片swf时,我看到每个幻灯片上都有stop命令。IOS只是通过这些停止而不是PC。有趣的是,swf在IOS上的负载根本不存在。我原以为车站会阻止这一切。不过,它们确实很重。IOS根本不尊重停止。动画播放得很漂亮。我能用别的方法阻止他们吗?可能是从我的主要Flex代码外部?有没有办法不停地停止Flash动画?也许用不同的方式制作动画?我看到的另一个产品解决了这个问题,所以我知道存在一个解决方案。当他们在IOS上播放动画时,他们会停止播放。

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

您正在使用Loader类吗?您可以发布用于加载SWF的代码吗?使用Flex 4.6 SWFLoader。只需在其上设置源属性,并将URL路径设置为幻灯片。很简单。问题可能不在这里。SWF的装载情况良好。然后在AS中,slide.source=URL;有趣的让我试一试。根据使用的FlashBuilder项目类型,有两种不同的结果。当加载到我需要的Flex mobile项目中时,它会在第15行mc.addEventListenerEvent上抛出一个运行时异常。输入_FRAME,newFrame并加载每个新幻灯片。mc为空。当加载到常规Flex项目中时,不会引发此异常,但“播放”按钮不会重新启动剪辑播放,这是我认为它应该做的。这将指示剪辑的控制。你有不同的结果吗?由于空指针异常,我无法在iPad上运行。啊,当点击按钮时,忘记将movieclip重置为第一帧。我不确定iOS的情况,我将在Flex mobile项目中尝试,看看会发生什么。我知道移动异常是什么。这是AS3 AVM2电影与AS2 AVM1电影的对比。我正在加载2个swf。这就是我的PPT/swf转换器产生的结果。mc为空,因为AS2 swf不是MovieClip。它们实际上是一种较老的类型——AVM14电影。仅仅更改代码中的类型并不能得到它,因为AVM1Movie是另一种动物。事实上,与AS3中的AS2电影交谈真的很困难。本地连接试图弥合这一分歧,但我还无法让它们发挥作用。另一个选择是找到一个PPT-to-swf转换器,它可以产生AS3输出。我还没找到。