mianwo 的blog  

     

当心"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刚体引擎新进展

in

自从上一个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的,它内部使用三维向量),只是这个用三维的形式来表现。

聚合内容