elastic_force_class.as

来自「这是《Flash MX编程与创意实现》的源代码」· AS 代码 · 共 71 行

AS
71
字号
/*
  ElasticForce Class v1.1
  Oct. 29, 2002
  (c) 2002 Robert Penner
  
  This is a custom object used to implement elastic force
  according to Hooke's Law. 
  Designed to collaborate with PhysicsParticle class.
  
  Dependencies: 
  - Force class
  - Function.extend() and Object.superCon() (included in core_setup.as)
  
  Discussed in Chapter 11 of 
  Robert Penner's Programming Macromedia Flash MX
  
  http://www.robertpenner.com/profmx
  http://www.amazon.com/exec/obidos/ASIN/0072223561/robertpennerc-20
*/


if (typeof _global.Force != 'function') trace (">> Error: superclass missing - Force");
if (typeof Object.superCon != 'function') trace (">> Error: Object.superCon() missing (core_setup.as)");

_global.ElasticForce = function (anchorX, anchorY, tautness, life) {
    this.superCon (0, 0, life);
    this.$anchor = new Vector (anchorX, anchorY);
    this.$tautness = tautness;
};

ElasticForce.extend (Force);

var EFP = ElasticForce.prototype;


////////// GETTER/SETTER METHODS

EFP.setAnchor = function (x, y) {
    this.$anchor.reset (x, y);
};

EFP.getAnchor = function () {
    return this.$anchor;
};

EFP.setTautness = function (t) {
    this.$tautness = t;
};

EFP.getTautness = function () {
    return this.$tautness;
};


////////// PRIVATE METHODS

EFP.update = function () {
    with (this) {
        $value = parentPos.minusNew ($anchor);
        $value.scale (-$tautness);
    }
};

with (EFP) {
    addProperty ("tautness", getTautness, setTautness);
    addProperty ("anchor", getAnchor, null);
}

delete EFP;

trace (">> ElasticForce class loaded");

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?