1

我有一个 NetStream,它被正确地置于数据生成模式......一切正常,当我执行以下操作时,我得到 onSeekPoint() 事件:

例 1

public function setupStream() {
     netStream.client = {};
     netStream.client.onSeekPoint = this.onSeekPoint;
     netStream.client.onMetaData = this.onMetaData;
}

public function onSeekPoint(... args) {...}
public function onMetaData(... args) {...}

但是,我需要为也具有 onSeekPoint 的客户端创建一个新类,而不是将其全部保存在该父类中。它不起作用。奇怪的是,onMetaData 回调确实......它是这样的:

例 2

package {
   public class CustomClient {
       public function CustomClient() {
       }
       public function onSeekPoint(... args) {...}
       public function onMetaData(... args) {...}
   }
}

public function setupStream() {
   var myClient:CustomClient = new CustomClient();
   netStream.client = CustomClient;
}

我想也许我错过了一些小问题 - 但真正让我害怕的是,这完全可以正常工作......

例 3

package {
   public class CustomClient {
       public function CustomClient() {
       }
       public function onSeekPoint(... args) {...}
       public function onMetaData(... args) {...}
   }
}

public function setupStream() {
   var myClient:CustomClient = new CustomClient();
   netStream.client = {};
   netStream.client.onSeekPoint = myClient.onSeekPoint;
   netStream.client.onMetaData = myClient.onMetaData
}

我想“如果它没有坏就不要修复它”可能适用于此,但我有点担心让一些我不理解的代码消失,并担心它可能会在我最不期待的时候回来咬我;)

我的问题是:

  1. 为什么第二个示例不适用于 seekPoints?
  2. 那么,为什么第二个示例适用于元数据?
  3. 为什么第三个示例解决了所有问题?

编辑:如果不清楚,不同的类正确地位于单独的文件中,等等。它们只是在此处的示例中组合在一起,以使其更容易消化

4

1 回答 1

0

在你的第二个例子中,你有这个:

var myClient:CustomClient = new CustomClient();
netStream.client = CustomClient;

但不应该是这样的:

var myClient:CustomClient = new CustomClient();
netStream.client = myClient;
于 2012-11-13T18:46:05.997 回答