将onSeekPoint怪事(onSeekPoint weirdness)

2019-10-17 05:03发布

我有投入数据生成模式下正常......一切工作正常,我也得到将onSeekPoint()事件时,我像做以下一个NetStream:

例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;
}

我想,也许有一些小问题,我missed-但真正吓到我了,是这完全正常工作...

例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. 为什么第三个例子搞定一切?

编辑 :如果现在还不清楚,不同类别在不同的文件正确,等他们只是组合在这里的例子,使其更容易消化

Answer 1:

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

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

但它不应该是这样的:

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


文章来源: onSeekPoint weirdness