2011-09-05 116 views
2

美好的一天。我正在为我们的游戏创建一个类似Flash文件的库。我正在使用adobe flash cs5与as3和adobe indesign。我还是很新的闪光灯(一个真正的新手),我想知道如果有人能帮我解决我的问题。加载一个新的movieclip/swf文件按钮点击AS3

描述:

我有一个名为 “炫魅” 一个影片剪辑文件。 mainPage包含6个按钮(带有cyrstal设计),但只允许关注1个按钮。第一个按钮包含名称Art_btn,当单击该按钮时(这是我的问题),它将调用movieclip artBook。我有另一个名为“artBook”的电影片段。我的artBook中的内容被分离或写在每个可以被点击next或prev时调用的帧上。

这是我的概率。当我点击Art_btn时,我不知道什么是适合artBook的正确代码。 我尝试插入代码,如loadMovie,gotoAndPlay和addChild,但是当我测试它时,mainPage的内容不会显示出来,它会产生错误。

我解决我的问题,有两种选择:

  1. 加载在操作选项卡中闪光CS5从Adobe InDesign中所做的swf文件

  2. 加载/打开按钮点击另一个影片剪辑。


对我的第一选项的目​​的是创建至少一个简单的翻页效果的book.I已经在Adobe InDesign中创建的文件打开的作品外,当闪烁的Adobe CS5

我的第二个选择是调用另一个影片剪辑,当我按下特定的按钮,它没有页面翻转动画和任何。


这里是我的闪存的唯一代码,位于炫魅

stop(); 

import flash.events.MouseEvent; 

Art_btn.addEventListener(MouseEvent.CLICK, ArtClick); 

function ArtClick(event:MouseEvent){ 
//what should be put here? :(here is where i put the codes i tried that causes the error 

} 

的动作面板我希望有人能够帮助我。 :(我真的很感激它,如果它可以工作在此先感谢那些谁也回答

回答

1

这里是如何完成选项1(加载外部SWF):

var loader:Loader = new Loader(); 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, handleLoaded); 
loader.load(new URLRequest("nameAndLocationOfSWFFile.swf")); 

function handleLoaded(evt:Event):void { 
    //evt.target.content is your reference to the swf that was loaded 
    addChild(evt.target.content); 
} 

至于选项2,这取决于我不确定根据你的描述确定你想要的确切意图或方法是什么,但是你可以让你的动画片段已经添加到另一帧的舞台上,或者您可以创建一个新的动画片段实例

要使用不同的帧,只需将您的动画片段放置在不同帧的舞台上并给框架一个标签。从ArtClick()内部,您可以拨打gotoAndStop("myTargetFrameLabel")

要创建动画片段的新实例,您需要设置与动画片段的链接。如果你给你的影片剪辑画集的连锁类的名称,你可以使用下面的内ArtClick()

var myClip:MovieClip = new ArtBook(); 
addChild(myClip); 

这将画集的新实例添加到舞台上。