|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
用Flash动画制作软件制作的动画文件很小,这样便于在互联网上传输,而且它采用了流技术,只要下载一部分,就能欣赏动画,而且能一边播放一边传输送数据。
一个程序员写一个立体的游戏,一样平常情形下是看不到UI界面的,内里的每一个控件和图象的挪动和地位都是经由过程代码来完成,良多团队把这个数据的义务交给了美工,美工在发图的时分就把地位都拍好,而且给程序员。一般这里也有两种形式,一个是给相对坐标的,这合用于屏幕巨细不会改动的,长宽高和地位都是写逝世稳定的。可是这类形式的程序常常对照小型,相反更多的都是绝对坐标,这关于Flash版本的客户端来讲实际上是很简单的事变,那末这个坐标究竟怎样设置,履历熬煎了我好久。
起首就是间接设置
mc1.x=??;mc1.y=??;
如许mc1就设置好了,as3静态new出来的mc是没有width的,也没有height,而他的长和高自己也是不定,假定你在内里加了一张300x200的图片,那末他的w和h就会酿成300和200,假如你又加了一张400x100的图片,他的w就会酿成400而h稳定,这在于绝对坐标上对应是庞大了良多的,好比我要让这个mc完整居中要怎样做?
假如舞台是1000的宽度,要剧中对照简单mc1.x=(1000-400)/2;如许就居中了,来看道理,起首我们要舞台居中,很简单就想到一个数字1000/2了局是500可是x对舞台的中心是不可的x是左上角,以是这个谜底还要再减往400/2相称于mc1再左移本人的一样平常的地位,如许就完整剧中了,谜底就是1000/2-400/2那末算式就演变出来了。
以是要居中的谜底仿佛已出来了(stage.stageWidth-mc.width)/2这个坐标必定是最两头的,可是真的云云吗?假如舞台变了呢?假如mc的巨细变了呢?他还居中吗?如许想一想仍然是的。
我已经也长短常幻想的以为这是最好的办法,可是理论告知我,我错了,当我必要在mc中持续增添原件图片,而且这个图片也要居中,而且这个图片要在mc内,而且这个图片大概年夜于mc也大概小于mc。来看看情形是怎样的。
假如mc2在mc1里,而且mc1年夜于mc2,很好mc2.x=(mc1.width-mc2.x)/2;十分好,很明显他们对得很齐,而且mc1不必要在舞台上挪动。可是另外一种情形呢?经由过程这个算法也能够失掉他们的坐标,可是这个时分mc1.width已不在是本来的了,由于mc2的width比它年夜,以是明显是堕落,算出来的了局是0,那末年夜的图片就会和小的图片”左对齐”了,而更新了舞台上mc1的地位后mc1的地位是居中了,但是内里的却错得乌烟瘴气,你又要从头对齐本来的图象,2个文件就要往返对其,贫苦不错,很简单对了这个忘了谁人,终极了局就是图象稀里糊涂错位,疾苦。已经思索过良多,图象越多就越贫苦。
这个时分良多程序员其实不会跳出来,会一向想怎样对其,然后一向修复这个成绩,实在错了,我们都错了,办理成绩偶然候不成以逝世头脑,假如换思绪会怎样?有想过?换过今后倒是云云的复杂,我们再来看看道理。
起首我们把检测他的巨细,然后运算居中,可是巨细会变,算了表面不克不及顾及内里,算了内里不克不及顾及表面,那能不克不及不算呢!谜底是一定的。实在不管怎样巨细变有一个点是永久对着舞台中央的,那就是mc的中央,可是width的巨细在变,怎样才干让中央稳定呢,这时候我想到了一个关头字(注册点),在FlashIDE里大概这个名词很熟习,可是到了代码里大概很难遐想到这个关头字,以是我们要做的是让mc的中央点永久是0点就能够了。也就是说00点是两头而不是左上角!这个时分我们再来对齐看看??
mc1.x=stage.stageWidth/2;
mc2.x=-(mc2.width/2);
如今再来看看,不管里内里是年夜是小,永久间接左移,先把本人的中央断定,然后在把这其中心对到舞台的中央,居中举动终极外美的完成了。固然左对齐右对齐都能够用这个思绪,你既然设置是00点的地位,那就先让你的图象和00对齐,再让00往对其余中央,如许迭代就不简单堕落了。本来就是云云复杂的成绩,由于入手下手的时分就错了,因而愈来愈贫苦,良多时分成绩都是相似的,必定要注重。此成绩履历深入,故宣布一下!最初来句空话,有乐趣转载请出名出处,感谢!感谢撑持!感谢人人。
flash是Macromedia公司的一个的flash动画制作软件。我们可以从Macromedia公司的主页上下载flash的试用版。 |
|