如何创建具有多个帧的电影脚本的AS3等效物?
如果我使用的是Flash IDE,我会在第1帧上放置我想要的任何内容,在第2帧上放置其他内容等,并在用户单击“下一步”按钮时逐步浏览帧。或者也许放入关键帧和补间,让系统以固定的速率播放帧。
我没有在AS3中看到这样做的方法,即使我看到的所有描述都说Flash CS3将你的时间轴和帧转换为ActionScript,我想知道如何做到这一点而不用Flash IDE(例如,在Flex中工作)。
我们举一个简单的例子:我有3帧。第1帧包含启动页面(大量文本和按钮)。第2帧包含一个图像,一个标签和一个显示“下一步”的按钮。第3帧包含两个图像和一个标签。
你将如何在AS3中构建它?
答案 0 :(得分:0)
您很可能只是将每个框架创建为个人Sprite。
如果您想在它们之间切换,请使用removeChild()
隐藏旧版本,addChild()
显示新版本。
如果您想获得幻想,可以添加Tween(built-in或tweening engine)。这将允许您在帧之间淡入淡出,或者缩放它们,或者从左向右滑动,或者其他任何内容。
如果您需要执行更复杂的序列动画,可以查看TimelineLite之类的内容来帮助解决这个问题。
答案 1 :(得分:0)
Flash CS
您将把逻辑代码放在关键帧中,并对文本,按钮等执行某些操作。多用途很难编辑和处理它。
AS3使用类似Flash Builder的IDE
Flash CS将仅用于制作动画swf
假设我们有一个名为A.swf的swf
A.swf中
mySymbol(链接名称如com.mySymbol)
subSymbol1(名为subSymbol1)
subSymbol2(名为subSymbol2)
以下是在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;
}
}
它可以使程序和视图以某种方式独立。