如果舞台是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 居中问题的更多相关文章

  1. Flash AS实现时钟效果(全脚本实现)

    最近工作中用到个Flash效果,好久没有写FlashAS脚本了,就想从以前写的代码中找一些实例.竟然看到硬盘中还留有若干年前的代码. 这个时钟效果是全部采用脚本实现,图形也是用脚本绘制的.写于2005 ...

  2. flash

    1. 1.这种方式已经比较旧了, 2. html.push('<div class="flash-ad" style = "position:relative&qu ...

  3. Flash网站Loading制作

    Flash网站Loading制作~~~ stop(); stage.scaleMode=StageScaleMode.NO_SCALE; //指定舞台属性为不跟随播放器大小而改变 stage.show ...

  4. Html页面插入flash代码

    转自:http://www.educity.cn/jianzhan/402117.html 转自:http://www.cnblogs.com/yxc_fj/articles/1390621.html ...

  5. 页面中插入flash,并且给flash添加单击事件控制播放,以及获取相关参数.

    <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100%" hei ...

  6. html中插入flash代码详解(转载)

    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://down ...

  7. 转: object 和embed 标签播放flash

    一.介绍: 我们要在网页中正常显示flash内容,那么页面中必须要有指定flash路径的标 签.也就是OBJECT和 EMBED标签.OBJECT标签是用于windows平台的IE浏览器的,而EMBE ...

  8. 架设FLASH视频流server心得

    什么样的情况下才使用FMS?有下面几种情形的时候,你可能须要用到FMS 1.须要通过Flash Player 播放视频,而视频是以流的方式,而不是http渐进式下载的方式进行播放的时候.渐进式下载就是 ...

  9. js判断flash文件是否加载完毕

    轮询判断加载进度 img的加载完成有onload方法,一直不知道该怎么判断swf文件是否加载完毕了? 在应用中使用了轮询判断加载进度值PercentLoaded是否达到100,经测试,可以达到效果. ...

随机推荐

  1. table表格中的内容溢出布局方式

    什么是内容溢出呢?其实就是当文字很多的时候,如果内容区域只有那么长,那么多出的部分以点点点代替. 这次做的案例是在table里面,我们知道当我们在table里输入过多的文字内容的时候会撑乱表格,例如一 ...

  2. Gerald is into Art

    Gerald is into Art Gerald bought two very rare paintings at the Sotheby's auction and he now wants t ...

  3. ios基础篇(三十)—— AFNetworking的使用

    一.AFNetworking的创建 1.新建工程,命名为AFNDemo 2.导入AFNetworking.h AFNetworking文件下载:https://github.com/AFNetwork ...

  4. ElasticSearch集群配置

    因机器有限,本文只做单机3个节点的集群测试. 1.集群测试信息 elasticsearch版本:elasticsearch-2.4.1 windowns版本:win10 2.解压elasticsear ...

  5. 隔壁信概大作业xjb写——同化棋ATAXX

    话说泥萌北大信科啊,助教是有多懒...去年黑白棋今年同化棋,顺带打ai都不用自己写标程... 好吧..我知道泥萌重点在各种sb的辅助操作上..什么悲剧的可以随时暂停载入...有毒吧 [据说泥萌上课没讲 ...

  6. Yii2中request的使用

    1.普通的get和pst请求 $request = Yii::$app->request; $get = $request->get(); // equivalent to: $get = ...

  7. 驱动插ring3线程执行代码

    近日有在写一个小东西 需要在内核态中运行一个WIN32程序 之前提到的插入APC可以满足部分要求 但是一到WIN7 x86平台下就崩溃了WIN7下只能插入第三方的进程 一插入系统进程就崩溃,但是这样满 ...

  8. what is service?

    SERVICE n.服务,服侍:服务业:维修服务:服役 vt.检修,维修:向…提供服务:保养:满足需要 adj.服务性的:耐用的:服现役的 更多详情:http://dict.baidu.com/s?w ...

  9. Adding a WebPart to a SharePoint 2013 Master Page 分类: Sharepoint 2015-07-08 01:03 7人阅读 评论(0) 收藏

    On SharePoint 2013 you can not add the Web Parts to the master page the same way of 2010. Please use ...

  10. Java对象的XML序列化(转)

    转自:http://westlifesz.javaeye.com/blog/48618 java.io.Serializable引发的问题——什么是序列化?在什么情况下将类序列化?  序列化就是一种用 ...