///////////////////////////////////////////////////////////////////////////////////////////////////
//
// onDoubleClick-event
// ===================
//
// This Script adds an onDoubleClick-event to the MovieClip-Class.
//
// usage:
//   mcBall.onDoubleClick = function () {
//     trace('I was double-clicked');
//   }
//
// attention:
//   If you want to remove the double-click-behaviour set it to null,
//   delete will not work.
//   mcBall.onDoubleClick = null;
//
// side-effects:
//   If you need the: "onPress-Handler" you have to define it first,
//   otherwise the onDoubleClick-event stops working.
//
//   In MovieClips that use the onDoubleClick-Event the following properties
//   are settet:
//     __onPress__
//     __lastClick__
//     __onDoubleClick__
//   These properties are hidden by ASSetPropFlags.
//
///////////////////////////////////////////////////////////////////////////////////////////////////
onDoubleClickGetter = function () {
  return this.__onDoubleClick__;
}
//
onDoubleClickSetter = function (pNewValue) {
  if (pNewValue == null) {
    this.__onDoubleClick__ = undefined;
    this.onPress = this.__onPress__;
    return;
  }
  //
  if (this.__onDoubleClick__ != undefined) {
    this.__onDoubleClick__ = pNewValue;
    return;
  }
  //
  this.__onDoubleClick__ = pNewValue;
  this.__lastClick__ = null;
  //
  this.__onPress__ = this.onPress;
  this.onPress = function () {
    // The 500 is the DoubleClick-Time, add your hook here.
    if (this.__lastClick__ + 500 > getTimer()) {
      this.__onDoubleClick__();
      this.__lastClick__ = this.__lastClick__ - 500;
    } else {
      this.__onPress__();
      this.__lastClick__ = getTimer();
    }
  }
  //
  ASSetPropFlags(this, ['__onPress__', '__lastClick__', '__onDoubleClick__'], 1, 0);
}
//
MovieClip.prototype.addProperty('onDoubleClick', onDoubleClickGetter, onDoubleClickSetter);
//
delete onDoubleClickGetter;
delete onDoubleClickSetter;



// Test
/*
mcBall.onPress = function () { trace('onPress'); }

mcBall.onDoubleClick = function () {
  trace('onDoubleClick');
}
*/