1. ActionScript / Говнокод #5793

    −110

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    var p2pStream:P2PStream = this
    var client:Object = new Object();
    client.onPeerConnect =  function(subscriber:NetStream):Boolean{
    	return p2pStream.onPeerConnect()}
    
    nsPublish = new NetStream(netConnection, NetStream.DIRECT_CONNECTIONS);
    nsPublish.client = client;

    Это AS3 (хотя это было бы говном в AS2 тоже, но там хоть причину можно было понять).

    Запостил: wvxvw, 24 Февраля 2011

    Комментарии (5) RSS

    • Не ясно почему
      Ответить
      • onPeerConnect - это метод который вызывается у клиента NetStream, в данном случае мы видим, что этот метод определили у класса, в котором находится этот код, но, вместо того, чтобы вызвать непосредственно уже существующий метод лепится безымянная функция (которую потом мучительно долго искать в логах ошибок). Которая еще и размножается не понятно зачем, и которая абсолютно не нужна. Т.е. весь этот маразм заменяется на
        nsPublish = new NetStream(netConnection, NetStream.DIRECT_CONNECTIONS);
        nsPublish.client = this;

        Или, если бы мы отнаследовались от NetStream, то нам даже не нужно было бы определять client, т.как по умолчанию foo.client == foo.
        Ответить
    • Это не говнокод. Метод из самого класса по неизвестным причинам не вызывается.

      http://workflowflash.com/41286/netstream-onpeerconnect-handler-must-be-a-generic-object.php
      Ответить

    Добавить комментарий