вот такой onDoubleClick - Это хак?
нагуглил вот такой класный код:
Код:
MovieClip.prototype.addProperty("onDoubleClick",function() {
return this.$onDoubleClick;
},function(f) {
this.__proto__ = DoubleClick.prototype;
this.$onDoubleClick = f;
ASSetPropFlags(this,["$onDoubleClick"],1,true);
});
DoubleClick = function() {};
DoubleClick.prototype = new MovieClip();
DoubleClick.prototype.onMouseDown = function() {
if(this.hitTest(_root._xmouse,_root._ymouse,true)) {
(this.t = getTimer()) < this.$a+250 ? this.$onDoubleClick() : this.$a = this.t;
}
};
ASSetPropFlags(MovieClip.prototype,["onDoubleClick"],7,true);
ASSetPropFlags(this,["DoubleClick"],7,true);
some.onDoubleClick = function() {
trace("double click")
};
вот мне объясните. функции ASSetPropFlags нет в хелпе вообще. это хак? недокументированная возможность? откуда о них вообще узнают? если я ее буду использовать в своих программах, не случится ли так, что со слеующим плеером/следующим дистрибутивом флеша код перестанет работать? я просто не очень разобрался в флеш-машине, и байт-коде флеша, чтобы понимать до какого кода он ассемблирует изначальный код.
Кста, такого модного double-click в факе флешера нет. есть код создающий глобальное событие, но этот имхо удобней.
|