为cat-album制作与设置转场
即时获得麻球游戏开发的最新消息,关注游戏开发者热门讨论,请各位开发者申请加入麻球官方群:121304476
也可以follow catfly围脖:t.sina.com.cn/iscat

相册转场的制作很简单,每一种转场效果只要求是一个影片剪辑对象就可以,每一种转场效果都发布成独立的swf文件,然后Embed到转场文件中,再把这些转场类统一存放在_transArr数组中,最后根据请求返回指定的转场影片剪辑对象。

下面是制作转场文件时的文件结构,我把所有的单个的转场动画的swf文件全放在assets文件夹中。

一. 在转场制作文件的文档类中, Embed所有的转场文件,并把所有的类存放在_transArr数组中。


[Embed(source="./assets/trans1.swf")]
public var trans1:Class;

[Embed(source="./assets/trans2.swf")]
public var trans2:Class;

[Embed(source="./assets/trans3.swf")]
public var trans3:Class;

[Embed(source="./assets/trans4.swf")]
public var trans4:Class;

[Embed(source="./assets/trans5.swf")]
public var trans5:Class;

[Embed(source="./assets/trans6.swf")]
public var trans6:Class;
......
private var _transArr:Array=new Array(trans1,trans2,trans3,trans4,trans5,trans6,......);

二. 在转场文件中有一个公共方法getTransition(n:Number=0):MovieClip,相册对象加载并设置转场文件后,就通过getTransition方法返回一个转场的MovieClip对象。


public function getTransition(n:Number=0):MovieClip {
        var trans:MovieClip  = new _transArr[n]();
        return trans;
}

转场示例文件:transition.rar

三. 给相册设置转场的时候,需要在相册中加载最终编译好的transition.swf文件,
最后在加载完成的方法中把加载的transition对象通过相册的setTransition(tansArr:Array,tranSwf:Object)方法,就完成了对相册转场的设置。
tansArr中存放的是每一张图片对应的转场编号,
tranSwf是编号对应的转场影片剪辑。


var __tranSwf:Class;
var tranSwf:Object;
var transUrl:String = "./transition/albumTransition.swf";
loadTransition();

function loadTransition():void {
	 var loadTrans:Loader = new Loader();
	 var transContext:LoaderContext = new LoaderContext();
	 transContext.checkPolicyFile=true;
	 transContext.applicationDomain=new ApplicationDomain(ApplicationDomain.currentDomain);
	 loadTrans.load(new URLRequest(transUrl),transContext);
	 loadTrans.contentLoaderInfo.addEventListener(Event.COMPLETE,transitionLoadedFun);
}
function transitionLoadedFun(e:Event):void {
	 __tranSwf=e.target.applicationDomain.getDefinition("AlbumTransition") as Class;
	 tranSwf = new __tranSwf();

	 albumPlayer.setTransition(albumData["transArr"],tranSwf);
	 trace("[Transition loaded successfully!]");
}

猫抓鱼