particle.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. (function(window) {
  2. function ParticleView(modelObject){
  3. this.model = modelObject;
  4. var dp = this.model.draw_properties;
  5. var cs = window.cell_size;
  6. this.graphics
  7. .beginRadialGradientFill(dp.colors, dp.ratios,
  8. dp.inner_center.x * cs, dp.inner_center.y * cs , dp.inner_radius * cs,
  9. dp.outer_center.x * cs, dp.outer_center.y * cs, dp.outer_radius * cs)
  10. .drawCircle(0, 0, cs * dp.outer_radius);
  11. }
  12. ParticleView.prototype = new createjs.Shape();
  13. ParticleView.prototype.update = function(){
  14. this.x = cell_size * this.model.position.x;
  15. this.y = cell_size * this.model.position.y;
  16. }
  17. ParticleView.prototype.animate = function(){
  18. if(this.model.target){
  19. var own_view = this;
  20. this.update();
  21. this.update = function(){};
  22. createjs.Tween.get(this).to(
  23. { x: cell_size * this.model.target.x, y: cell_size * this.model.target.y },
  24. this.model.target.time - this.model.start_time
  25. ).call(function(){
  26. own_view.update = ParticleView.prototype.update;
  27. own_view.model.position.x = own_view.model.target.x;
  28. own_view.model.position.y = own_view.model.target.y;
  29. });
  30. }
  31. }
  32. window.ParticleView = ParticleView;
  33. }(window));