Вопрос

Следующий код представляет собой комбинацию примеров, взятых из red5. По сути, я пытаюсь объединить подписчика живого потока с окном чата на основе общих объектов. Я не флеш-разработчик и имею очень ограниченное понимание того, что здесь происходит.

// ** 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();
    }
}

}

Я не думаю, что var chat где-либо инициализируется, поскольку trace (chat) выводит «undefined». Однако var connector и var publish_video , похоже, собирают свои экземпляры со сцены.

Этот пример кода включал эти два и работал нормально, но я не могу заставить свои дополнения вести себя так же.

Я добавил экземпляр BasicChat на сцену (я использую Flash CS4) и провел последние много часов, играя с его различными свойствами, слоями и группировками, но безрезультатно.

Кто-нибудь может подсказать, почему мой var chat не собирает свой экземпляр со сцены?

Это было полезно?

Решение

Вы установили имя экземпляра вашего этапа BasicChat? Должно быть установлено значение «чат». Чтобы установить его, щелкните экземпляр этапа и найдите поле имени экземпляра на панели «Свойства» (первое / верхнее видимое поле).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top