Flash中对小数坐标处理

在计算机语言中,速度即位移增量。ActoinScript的写法则是:

fuckCERNET.x += fuckCERNET.vx; //fuckCERNET is an instance of some dynamic class当fuckCERNET.vx < 1/20时,Flash则不再渲染。这是根据FlashPlayer万恶的内部机制来实现的。根据我和一些美帝国主义的Flasher讨论,发现,FlashPlayer对物体x、y属性是有保护的:

Implementation
  public function get x():Number
  public function set x(value:Number):void为什么要有这个保护呢,也不难理解:肯定是因为你直接让一个物体移动到0.001的位置上后计算机(FlashPlayer)不知道怎么去显示它:计算机是根据像素组成的,例如我们通常所说的1024×768:即便你的影片再高清再无码,你放到80×60的显示器上还是只能显示4800个点。

虽然“万恶”,但不得不承认FlashPlayer很聪明地回避了这样的问题,甚至,很优雅地通过一个setter来解决了问题,我们可以想象这个setter可能会是:

public function set x(value:Number):void {
  if (value < 0.05) value = 0;
  // blah .. blah
}好的,知道这个之后,就好办了。每次速度改变(即碰撞的时候)做一次“最低值判断”:当速度标量(即不考虑方向)不为0(实际上这种情况很小)但小于0.05时,让速度等于0.05就好,可以用我写的这个函数来修正:

private function fixDecimalFractionPosition(value:Number):Number {
  if (Math.abs(value) < .05) {
    return (value > 0) ? .05 : -.05;
  }
  return value;
}

时间: 2024-08-31 13:01:54

Flash中对小数坐标处理的相关文章

谈Flash中的鼠标响应

鼠标|响应 大家都知道,Flash动画能够响应鼠标动作,从而实现各式各样的人机交互.常用的鼠标都有左中右三个键. 1.左键 鼠标左键在Windows系统下担负着神圣的职责,在Flash中也不例外.Flash能够自动捕获鼠标左键的动作,并根据捕获的动作激发内置的鼠标事件,再根据用户为这些事件编写的处理函数完成对鼠标左键的响应. 按钮和影片剪辑常常用来完成响应鼠标与实现交互的过程.对于按钮,可以用关键字on定义的事件处理函数来响应左键动作.其中,press表示左键按下的事件,release表示左键释

Flash中像素字体使用技巧

技巧 制作商业Flash动画的朋友相信对于象素字体一定不陌生.它又小又酷,非常漂亮,受大多数设计师的欢迎.目前像在全国非常有名的04系列字体(图-1) (图-1) 04系列字体的官方网站:http://www.04.jp.org/ 大家可以到这里面去下载所有的04系列字体. 对于04系列字体,Flash的支持并不完善.不仅对于04系列,对于其他各种类型的字体支持都不是那么完善,因为Flash是一个矢量动画软件.他可以很好的解决图像因为放大或缩小所造成的失真问题,但对于由单个象素构成的图形支持不好

技巧:Flash中的打印控制

打印|技巧|控制 这个估计很多人没有关心过.但是很有用.我贴上来吧. Flash中负责打印的类是 PrintJob 首先了解它一下 属性: orientation:String [只读] 图像的打印方向.图像的打印方向.此属性可以为 "landscape" 或 "portrait".请注意,只有在调用 PrintJob.start() 方法后,此属性才可用. pageHeight:Number [只读] 页面上实际可打印区域的高度(以磅为单位). pageWidth

FLASH中的移动方法教程和实例集锦

教程 欢迎转载,敬请注明来源--闪吧和作者---sxl001---QQ:285510591在此只探讨用AS语句去控制移动的方法.FLASH中能够移动的物体一般是舞台上的电影实例(为节省篇幅以下简称为MC,并且其实例名为my_mc).FLASH中物体的移动是在X轴(即水平)方向或Y轴(垂直)方向的运动.因此,通过控制mc属性中的_x与_y的值就可以达到使其运动的目的.一.匀速运动1.水平方向上的向右匀速运动 方法一:主场景第1帧:var mx=5;//设定初始速度为5主场景第2帧:my_mc._x

Flash中实现物体运动的三种方法

现在用Flash开发的游戏是越来越多了.很多朋友也很想学习用Flash制作游戏的方法.大家知道,不管在什么游戏中,实现物体的运动是游戏的前提,而不同的游戏里物体移动的方式又不尽相同.所以,想学习制作Flash游戏的朋友今天就先随我一起学学在Flash中实现物体运动的几种方法吧.几种方法如下: 方法一:通过单击按钮实现物体的单位运动 这种方法一般在需要按键的游戏中使用.你也可以给某个实体加上这段代码,然后通过单击这个实体达到某种游戏效果. 1.打开Flash,按快捷键"Ctrl + M"

帮助你在Flash中操作的更快的JSFL命令集

js 先看个简单的例子. 新建文件:画一个正方形转为Graphic:按住Alt拖动复制一堆:全选并对齐,使它们完全重合:执行Commands>[KC] Shuffle,参数如下图: 参数的含义就是:1)在x轴向上0到500的范围内随机分布2)随机旋转180°以内的角度值3)随机生成20到80之间的透明值OK,看结果: 文档"> 开发这一套Flash Extensions的主要原因是AE中的一些很好的动画助手工具,Flash中没有或者功能比较弱.所以我为了增强Flash的动画功能,把常

在Flash中使用位图的技巧

技巧 现在很多教师喜欢用Flash制作课件,而图形是制作过程中必不可少的元素.我们一般直接使用导入的位图,但在使用过程中却忽视了许多问题.因为毕竟Flash是一种基于矢量的图形软件,处理位图并不是它的强项,滥用位图很有可能给你的文件带来隐患.如文件的增大.运行时位图出现错位.抖动等情况.所以在使用位图时有必要掌握一些使用位图的方法和技巧,以消除隐患. 1.在导入之前应该先用其他的图形编辑软件对准备导入到Flash中的位图进行编辑(也可以用Flash对其进行编辑,编辑好后导出为图像,再重新导入到项

二进制在FLASH中的应用

二进制 一说到二进制,我们总是或多或少的感觉没有底,因为接触的比较少,而且也不是那么直观,容易理解,这次就来谈谈在FLASH中使用二进制,老少皆宜哦. 首先来看一段程序var round:Number = 2;var sweet:Number = 4;var delicious:Number = 8;var blet:Number = 16; //苹果是甜的.圆的.好吃的var apple:Number = round | sweet | delicious; //下面我们来看看苹果是不是好吃的

Flash中关于声音的常用命令介绍

先做个简单的了解,FLASH中经常用到的声音的控制命令以及声音的属性有哪些: 1.new Sound()//创建一个新的声音对象:2.mysound.attachSound()//加载库里的声音3.mysound.start()//播放声音:4.mysound.getVolume()//读取声音的音量5.mysound.setVolume()//设置音量6.mysound.getPan()//读取声音的平衡值7.mysound.setPan()//设置声音的平衡值8.mysound.positi