Как эти переменные инициализируются? - PullRequest
0 голосов
/ 06 мая 2009

Следующий код представляет собой комбинацию образцов, взятых из 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 не собирает свой экземпляр со сцены?

1 Ответ

1 голос
/ 06 мая 2009

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

...