Blogs

当心"stop()"!

This topic is related to AS2.0 .

最近我发现一个非常奇怪的返回值丢失的问题,情况是这样的:

我有一个类A,它继承自MovieClip,并在构造函数中调用了stop()方法。一切看起来都很正常,但是任何创建A的实例的方法的返回值都会丢失。
代码是这样的:
在A.as文件内:

class A extends MovieClip{
  function A(){
    stop();
  }
}

在test.fla文件内:
创建一个空MC,设置linkage id为"testa",并设置AS2.0 class为"A"。
在时间轴上写下下面的代码:

近期如果无法访问,请尝试使用dobbee.com这个域名

收到通知奥运期间可能会有互联网大检查,未备案的域名可能会被关闭解析
miian.com 这个域名由于是在国内的新网注册的,可能会受到影响,如果不能访问请尝试 dobbee.com ,着两个域名指向都是本站,没有任何区别。

btw: dobbee是我的狗的名字

这是一场灾难,你们幸存下来了,就要好好活下去。

今天是举国哀悼的第三天
灾区人民挺住!

滚动的球——RigidAPE刚体引擎新进展

自从上一个RigidParticle的demo发布以来,我重新整理了它的架构,并完善了它的算法。现在终于有新东西可以看了。
主要的改进是在这些方面:

  • 把检测碰撞点的代码放到了CollisionDetector中,我觉得这样更加合理一点
  • 关于刚体碰撞的运算,放到了一个新的类RigidCollisionResolver中。碰撞的算法以前只是看起来像得近似算法,现在才能算是真正的“模拟”。
  • RigidParticle被删除了,取而代之的有3个新的类:RigidItem、RigidRectangle和RigidCircle。RigidItem是新架构中所有刚体的母类,它管理所有刚体共有的一些操作和运算。RigidRectangle和原来的RigidParticle功能相同,模拟一个矩形的刚体。RigidCircle则是新增的圆形刚体,它可以模拟圆形粒子所无法做到的滚动效果,一个滚动着的球能够借助它的势能爬上山坡,这一点使用圆形的粒子是无法做到的

不过新的架构也有缺点,目前它还无法和普通粒子发生互动,而摩擦力的计算上还没有完全解决。

支持载入"obj"文件的Flash 3D引擎


这个3D引擎能够从obj文件中载入模型,而许多3D工具软件都能够输出obj格式,所以你可以在其它软件中建模,然后拿到这个引擎中使用。
我的3D汽车运动模拟就是在这个引擎的基础上建立的。

这个引擎最早是一个as1.0写成的开源3D引擎,我把它用2.0重写,然后增加了许多新的功能。这个引擎最大的特点是它是一个以矢量图形为基础的3D引擎。与其他大多数以点阵图形为基础的引擎不同。这个引擎更适合运行在flash 8.0以前的版本上。flash8之后引入了位图运算,所以更适合用点阵图形的引擎来做。

你可以看到这个引擎的隐藏面消除还有很多问题,这是因为大多数隐藏面消除的算法都是针对点阵图形引擎的,所以在这里我只用了一个很简单的方法来做隐藏面消除,于是在很多模型上的表现并不好。但是如果你能够在模型上多华一些功夫来细化,你一样可以得到很完美的结果。作为例子,你可以载入house.obj看看,这是我专门优化过的一个模型,你可以看到他的表现相当好,几乎看不到什么破绽。

3D汽车运动模拟


这是汽车运动模拟试验的3D版本,它们使用相同的刚体运动引擎(这个刚体引擎本身就是3D的,它内部使用三维向量),只是这个用三维的形式来表现。

模拟汽车运动试验

这是我一年多以前做的一个小程序,它能够比较准确地模拟汽车的运动,为了达到这个目的,我专门开发了一个模拟刚体运动的引擎。
这个模拟汽车的运动完全是从力开始计算出来的,加速度、速度、力矩、角速度等等完全是经过计算而得到的。所以它的运动方式几乎和真车一样,看起来相当真实。加速时,轮子推动汽车前进,转弯时,车轮与地面的摩擦力则提供整个汽车的向心力。
但是这个刚体引擎并不完整,它没有碰撞和连接、约束的处理,我曾尝试在引擎中加入这些,但是发现很复杂,所以后来就暂时搁置了这个项目。

升级系统,增加多语言支持

现在网站分成两个版本,中文和英文,可以在左边的连接上选择
目前英文版东西很少,等我慢慢翻译。。。

APE物理引擎的刚体扩展试验:RigidParticle

For english version of this page, click here.

APE是一个用AS3.0编写的2D物理引擎,它以粒子系统为基础,你可以通过系统提供的粒子与弹簧来连接成你想要的物体。所以他不需要引入复杂的刚体运动的计算,也可以较好的模拟复杂物体的运动情况。这个方法虽然显著的减少了系统的复杂程度,但是另一方面,由于制作复杂物体需要许多粒子与弹簧做连接,而flash播放器本身效率就不高,所以在有些情况下系统速度会比较慢。

所以我产生了把基本的刚体运动引入这个引擎的想法,让它可以更高效率的模拟一些简单的刚体运动。例如一个方盒子的运动情况。实际上APE已经有方形的粒子模型,可以很好的处理碰撞与弹簧约束的情况,但是APE的RectangleParticle模型不能处理旋转,因为APE把它当作一个粒子来看,所以忽略了对它的旋转处理。我这个RigidParticle所做的,就是把这个方形粒子在受力时的旋转加速度考虑进去,让它更像一个真实世界的盒子。

下面就是RigidParticle的演示,里面没有用任何的弹簧约束,而全部都是RigidParticle在表演。

原文件可以在 这里找到

BlogSync更新

最新版本 1.1 build1248

Blogger最近可能放弃了www2.blogger.com这个api地址,所以BlogSync对blogger的操作最近失效了。
现在我已经改到正确的api地址,blogsync可以继续使用了。

聚合内容