美好的一天。我正在为我们的游戏创建一个类似flash文件的库。我正在使用带有as3和adobe indesign的adobe flash cs5。我仍然是一个非常新的flash(一个真正的新手),我想知道是否有人可以帮我解决我的问题。
说明
我有一个名为“mainPage”的movieclip文件。 mainPage包含6个按钮(采用cyrstal设计),但只关注1个按钮。第一个按钮包含名称Art_btn,当单击按钮时,它会调用movieclip artBook(这是我的问题)。我有另一个名为“artBook”的动画片段。我的artBook中的内容被分开或写在每个框架上,可以在下一个或上一个单击时调用。
这是我的概率。我不知道什么是正确的代码,当点击Art_btn时,它将调用artBook。 我尝试插入诸如loadMovie,gotoAndPlay和addChild之类的代码,但是当我测试它时,mainPage内容不会显示,并且会产生错误。
我有两个选择来解决我的问题:
在flash cs5的操作选项卡中加载由adobe indesign制作的swf文件
点击按钮时加载/打开另一个影片剪辑。
我的第一个选项的目的是为书创建至少一个简单的页面翻转效果。我已经在adobe indesign上创建了文件,当在flash adobe cs5外面打开时可以正常工作
我的第二个选项是当我按下一个特定的按钮并且它没有任何页面翻转动画时调用另一个影片剪辑。
这是我的flash中唯一的代码,位于mainPage的操作面板中
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
}
我希望有人可以帮助我。 :(我真的很感激它,如果它可以工作。提前感谢那些谁会回答
答案 0 :(得分: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,它取决于您尝试完成任务的方式。我不确定根据你的描述你正在尝试的确切意图或方法是什么,但你可以将你的movieclip添加到不同帧的舞台上,或者你可以创建一个新的movieclip实例。 / p>
要使用不同的框架,只需将影片剪辑放在不同框架的舞台上,然后为框架添加标签即可。在ArtClick()
内,您可以调用gotoAndStop("myTargetFrameLabel")
。
要创建动画片段的新实例,您需要设置与动画片段的链接。如果您为movieclip提供ArtBook的链接类名称,则可以在ArtClick()
中使用以下内容:
var myClip:MovieClip = new ArtBook();
addChild(myClip);
这会在舞台上添加一个新的ArtBook实例。