Pregunta

El siguiente código es una combinación de muestras tomadas de red5. Básicamente, estoy tratando de combinar un suscriptor de transmisión en vivo con un cuadro de chat basado en objetos compartidos. No soy un desarrollador flash y tengo una comprensión muy limitada de lo que está pasando aquí.

// ** AUTO-UI IMPORT STATEMENTS **
import org.red5.utils.Connector;
import org.red5.samples.simplechat.BasicChat;
// ** END AUTO-UI IMPORT STATEMENTS **
import com.neoarchaic.ui.Tooltip;
import org.red5.net.Stream;
//import org.red5.utils.Delegate;
import com.blitzagency.xray.util.XrayLoader;

class org.red5.samples.livestream.subscriber.Main extends MovieClip {
// Constants:
    public static var CLASS_REF = org.red5.samples.livestream.subscriber.Main;
    public static var LINKAGE_ID:String =     "org.red5.samples.livestream.subscriber.Main";
// Public Properties:
// Private Properties:
private var stream:Stream;
private var cam:Camera;
// UI Elements:

// ** AUTO-UI ELEMENTS **
    private var connector:Connector;
    private var publish_video:Video;
    private var chat:BasicChat;
// ** END AUTO-UI ELEMENTS **
    private var uri:String = "rtmpt://localhost/oflaDemo";

// Initialization:
    private function Main() {XrayLoader.loadConnector("xray.swf");}
    private function onLoad():Void { configUI(); }

// Public Methods:
// Semi-Private Methods:
// Private Methods:
    private function configUI():Void 
    {
        // setup the tooltip defaults
    Tooltip.options = {size:10, font:"_sans", corner:0};
    // setup cam
    cam = Camera.get();
    // get notified of connection changes
    connector.addEventListener("connectionChange", this);

    // set the uri
    Connector.red5URI = uri;

    // initialize the connector
    connector.configUI();
    connector.makeConnection();
}

private function connectionChange(evtObj:Object):Void
{       

    if(evtObj.connected) 
    {
        // setup stream
        // XXX: odd hack needed for flashIDE.
        var conn = evtObj.connection; 
        var x = new Stream(conn);
        stream = x;
        stream.play("red5StreamDemo", -1);
        publish_video.attachVideo(stream);
        trace(chat);
        // register the NetConnection that GlobalObject will need
        chat.registerConnection(conn);

        // connect the shared object
        chat.connectSO();
    }
}

}

No creo que var chat se esté inicializando en ninguna parte, ya que trace (chat) se imprime como "indefinido". Sin embargo, var connector y var publish_video parecen recopilar sus instancias desde el escenario.

Este código de muestra incluyó esos dos y funcionó bien, pero no puedo hacer que mis adiciones se comporten de la misma manera.

He agregado una instancia de BasicChat al escenario (estoy usando Flash CS4) y he pasado las últimas horas jugando con sus diversas propiedades, capas y agrupaciones, pero en vano.

¿Puede alguien sugerir por qué mi var chat no está recopilando su instancia desde el escenario?

¿Fue útil?

Solución

¿Ha establecido el nombre de instancia de su instancia de etapa BasicChat? Se debe establecer en " chat " ;. Para configurarlo, haga clic en la instancia de la etapa y busque el campo del nombre de la instancia en el panel Propiedades (primer campo visible arriba / arriba).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top