如何在Actionscript 3中构建影片剪辑

时间:2013-09-07 17:28:13

标签: actionscript-3 flash flex actionscript

如何创建具有多个帧的电影脚本的AS3等效物?

如果我使用的是Flash IDE,我会在第1帧上放置我想要的任何内容,在第2帧上放置其他内容等,并在用户单击“下一步”按钮时逐步浏览帧。或者也许放入关键帧和补间,让系统以固定的速率播放帧。

我没有在AS3中看到这样做的方法,即使我看到的所有描述都说Flash CS3将你的时间轴和帧转换为ActionScript,我想知道如何做到这一点而不用Flash IDE(例如,在Flex中工作)。

我们举一个简单的例子:我有3帧。第1帧包含启动页面(大量文本和按钮)。第2帧包含一个图像,一个标签和一个显示“下一步”的按钮。第3帧包含两个图像和一个标签。

你将如何在AS3中构建它?

2 个答案:

答案 0 :(得分:0)

您很可能只是将每个框架创建为个人Sprite

如果您想在它们之间切换,请使用removeChild()隐藏旧版本,addChild()显示新版本。

如果您想获得幻想,可以添加Tween(built-intweening engine)。这将允许您在帧之间淡入淡出,或者缩放它们,或者从左向右滑动,或者其他任何内容。

如果您需要执行更复杂的序列动画,可以查看TimelineLite之类的内容来帮助解决这个问题。

答案 1 :(得分:0)

Flash CS

您将把逻辑代码放在关键帧中,并对文本,按钮等执行某些操作。多用途很难编辑和处理它。

AS3使用类似Flash Builder的IDE

Flash CS将仅用于制作动画swf

假设我们有一个名为A.swf的swf

  • A.swf中

    • mySymbol(链接名称如com.mySymbol)

      • subSymbol1(名为subSymbol1)

        • nameLabel(名为label1)
        • addressLabel(名为label2)
      • subSymbol2(名为subSymbol2)

        • nameLabel(名为label1)
        • addressLabel(名为label2)

以下是在Flash Builder中使用A.swf的方法

Class MyView {

   public function MyView() {

      var loader:Loader = new Loader();
      var url:String = "A.swf";
      var urlReq:URLRequest = new URLRequest(url);
      var loaderContext:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain, null);
      loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);
      loader.load(urlReq, loaderContext);
   }

   private function onLoadComplete(e:Event):void {

       //now you can get defined symbols in A.swf
       var c:Class = getDefinitionByName(" com.mySymbol");

       //get a mySymbol  instance
       var mc:MovieClip = new c();

       //add to parent
       some.addChild(mc);

       /*what you said you got three frames,
       Just like set like subSymbol1 and subSymbol2 in this A.swf
       add some text in subSymbol1  and other in subSymbol2 */

       mc.subSymbol1.visible = false;
       mc.subSymbol2.visible = true;
   }


}

它可以使程序和视图以某种方式独立。