一月 29, 2010 11 : 33 下午 此格有 8 个脚印
即时获得麻球游戏开发的最新消息,关注游戏开发者热门讨论,请各位开发者申请加入麻球官方群:121304476
也可以follow catfly围脖:t.sina.com.cn/iscat
也可以follow catfly围脖:t.sina.com.cn/iscat
我网站上的flash都实现了cat风格的loading后,虽然只是个小东西,但有朋友觉得不错,要求分享,所以我要有求“必应”嘛!
先说说loading中的两只小猫吧,那是从同事的作品中抢来的,是为“土豆树”项目制作的素材,两只黑色的瘦猫,当然非我莫属了。拿人动画,当然要替人宣传了,作者是seven。
这个loading会根据自己src中的参数获得需要加载进来的flash地址
src="/wp-content/uploads/catflyLD2.swf?swf=/wp-content/uploads/2010/01/LinkVideo2.swf"
下划线的部分就是被加载的flash的地址。在as中通过如下方法来获取src中的变量值:
var paramObj:Object=LoaderInfo(root.loaderInfo).parameters;
//----
if (paramObj["swf"]) {
initSwf();
} else {
alertErr();
}
//----
function initSwf():void {
var swfUrl:String=paramObj["swf"];
//var swfUrl:String="football.swf";
loader.load(new URLRequest(swfUrl));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeHandler);
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
}
根据要加载的flash的尺寸自动更改loading动画的比例并居中显示
首先说明,我所有的loading中的背景与动画效果包括文本都在一个叫“loadMc”的影片剪辑中。
//为了保证正常变形,先指定舞台对齐方式与缩放模式
stage.align=StageAlign.TOP_LEFT;
stage.scaleMode=StageScaleMode.NO_SCALE;
//应用山寨版changesize方法(下面的方法很原始,学过数学的人都看得明白)
changesize(loadMc,loadMc.width,loadMc.height);
function changesize(mc:Sprite, w:uint, h:uint):void {
if (w/h>stage.stageWidth/stage.stageHeight) {
mc.width=stage.stageWidth;
mc.height = stage.stageWidth/(w/h);
} else if (w/h <= stage.stageWidth/stage.stageHeight) {
mc.width=w/h*stage.stageHeight;
mc.height=stage.stageHeight;
} else if (w/h == stage.stageWidth/stage.stageHeight) {
mc.width=stage.stageWidth;
mc.height=stage.stageHeight;
}
mc.x = (stage.stageWidth-mc.width)/2;
mc.y = (stage.stageHeight-mc.height)/2;
}
//也可以应用非山寨版changesize方法
function changesize(mc:Sprite, w:uint, h:uint):void {
var bigPicWidth:Number = stage.stageWidth;
var bigPicHeight:Number = stage.stageHeight;
if (w/h>bigPicWidth/bigPicHeight) {
mc.scaleX=mc.scaleY=bigPicWidth/mc.width;
} else if (w/h < bigPicWidth/bigPicHeight) {
mc.scaleX=mc.scaleY=bigPicHeight/mc.height;
} else if (w/h == bigPicWidth/bigPicHeight) {
mc.width=bigPicWidth;
mc.height=bigPicHeight;
}
mc.x = (stage.stageWidth-mc.width)/2;
mc.y = (stage.stageHeight-mc.height)/2;
}
一般来说,上面功能满足大部分需要loading的体验了。
至于,根据被加载flash中要求的必须条件获取被加载swf中的警告文字显示在loading中,并由警告附带的属性决定是否画面停留在loading状态,不显示被加载的swf,直到客户端满足必要条件。
这个需要在被加载的flash中实现相关接口,也需要从loading中去访问被加载的flash中的方法与属于,我打算另写一个文章来好好介绍一下如何实现这种能抛出警告,并控制loading完是停留还是跳过loading的加载方式。
Category菜谱:
Cat Flash【Flash日志】







ок кайф установка настенного газового котла[引用]
来学习了 ZHY[引用]