Как эти переменные инициализируются?
-
05-07-2019 - |
Вопрос
Следующий код представляет собой комбинацию примеров, взятых из 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? Должно быть установлено значение «чат». Чтобы установить его, щелкните экземпляр этапа и найдите поле имени экземпляра на панели «Свойства» (первое / верхнее видимое поле).