AS3 で P2P クライアントに取り組んでいるときに、完全に理解したいことに出くわしました。
これが機能している間:
private function test():void
{
_sendStream = new NetStream(_nc, NetStream.DIRECT_CONNECTIONS);
var c:Object = new Object;
c.onPeerConnect = function(subscriber:NetStream):Boolean
{
trace("onPeerConnect");
return true;
}
_sendStream.client = c;
...
}
これは動作しません:
private function test():void
{
_sendStream = new NetStream(_nc, NetStream.DIRECT_CONNECTIONS);
_sendStream.client = this;
...
}
public function onPeerConnect(subscriber:NetStream):Boolean
{
trace("onPeerConnect");
return true;
}
手元にある特定の問題の詳細には触れずに (onPeerConnect は、ある時点で NetStream オブジェクトのクライアント オブジェクトで呼び出される単なるコールバック関数です)、関数宣言の 2 つの方法の正確な違いとその理由は何ですか?この場合、一方の方法は機能しますが、もう一方の方法は機能しませんか?