да по мне так и черт бы с ним, с этим кадром..
к слову, хотел глянуть сколько теряется, полагая что getTimer() у обоих должен быть от одного начала,
но похоже что getTimer и них разный, потому как получаются сущие копейки по времени: 0..15 мс
смотрел так:

Код AS1/AS2:
//AS2-мувик, следит за средней кнопкой, отправляет "middleMousePress" если нажали
class Dispatcher extends MovieClip
{
//mtasc entry point
public static function main(swfRoot:MovieClip):Void
{
swfRoot.__proto__ = Dispatcher.prototype;
//trace(getTimer());
}
private var _pressed:Boolean = false;
private var _lc:LocalConnection = new LocalConnection();
function onEnterFrame()
{
if (Key.isDown(4) && !_pressed)
{
_lc.send("middleMouse", "middleMousePress", getTimer());
}
_pressed = Key.isDown(4);
}
}

Код AS3:
package
{
import flash.display.*;
import flash.net.LocalConnection;
import flash.utils.getTimer;
//LC, ждет от AS2-флешки вызова middleMousePress
public class MiddleButTest extends Sprite
{
private var _lc:LocalConnection = new LocalConnection();
[Embed(source="dispatcher.swf", mimeType="application/x-shockwave-flash")]
private var _dispatcherSWF:Class;
private var _dispatcher:AVM1Movie = new _dispatcherSWF() as AVM1Movie;
public function MiddleButTest():void
{
_lc.client = this;
_lc.connect("middleMouse");
}
public function middleMousePress(time:int ):void
{
trace("MIDDLE_MOUSE, dt: "+(time-getTimer()));
}
}
}