スコープがあってないと思うのだけど理屈がよくわからない・・・

例えば、こんなカスタムイベントはOK
(ステージに_mc1インスタンスを配置)

//////////
//フレームアクション

import mx.events.EventDispatcher;
import mx.utils.Delegate;

var frog1:Object = new Object();
EventDispatcher.initialize(frog1);
	function passPoint(eventObj:Object):Void {
		trace(eventObj.child);
	}
	frog1.addEventListener("passPoint",this);

_mc1.onRelease = function() {
	trace("on");
	trace("this;"+this);
	var testObj:test2 = new test2(frog1);
};

//////////
//カスタムクラス(test2.as)

class test2 {
	var childID = 300;
	var frog1:Object;
	public function test2(frog1) {
		this.frog1 = frog1;
		tat();
	}
	function tat() {
		frog1.dispatchEvent({type:"passPoint", child:childID});
	}	
}

//////////
でもこれを以下のようにフレームアクションを変えるとイベントが受信できない。

//////////

import mx.events.EventDispatcher;
import mx.utils.Delegate;

var frog1:Object = new Object();
EventDispatcher.initialize(frog1);

_mc1.onRollOver = Delegate.create(this, testOver);
function testOver() {
	trace("this:"+this);
	function passPoint(eventObj:Object):Void {
		trace(eventObj.child);
	}
	frog1.addEventListener("passPoint",this);
};

_mc1.onRelease = function() {
	trace("on");
	trace("this;"+this);
	var testObj:test2 = new test2(frog1);
};

function testOverは委譲しているので、this参照は_lovel0になっているのに。
・・・何か別の問題があるのだろうか?

/////////////////////////////////////
12/5 追記
理解しました。
function内にfunctionが入っているとそれはローカル変数的なfunctionになるのだそう。
(passPointがtestOverに含まれてしまっているということ)
this参照が_lovel0でもグローバル的な関数にはなりえないってことらしい。

つまり・・・
////////////////////////
//これはtraceできないけど。。。

var test:Function;
function main(){
	//test = test();
	function test(){
		trace("a");
	};
}
main();
test();

////////////////////////
//これならできる、みたいな

var test:Function;
function main(){
	test = test();
	function test(){
		trace("a");
	};
}
main();
test();