Wie werde diese Vars initialisiert?
-
05-07-2019 - |
Frage
Der folgende Code ist eine Kombination von Proben aus red5 genommen. Grundsätzlich versuche ich, einen Live-Stream Teilnehmer mit einem Chat-Box zu verbinden, die auf gemeinsamen Objekte. Ich bin kein Flash-Entwickler und haben ein sehr begrenztes Verständnis von dem, was hier vor sich geht.
// ** 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();
}
}
}
Ich glaube nicht, dass var chat
überall initialisiert wird, als trace(chat)
druckt ‚undefined‘. Allerdings var connector
und var publish_video
scheinen ihre Instanzen von der Bühne zu sammeln.
In diesem Codebeispiel enthalten diese beiden und hat gut funktioniert, aber ich kann meine Ergänzungen verhalten sich die gleiche Art und Weise nicht machen.
Ich habe eine Instanz von BasicChat auf die Bühne (Ich bin mit Flash CS4) hinzugefügt und habe die Vergangenheit viele Stunden damit verbracht, zu spielen mit seinen verschiedenen Eigenschaften, Schichten und Gruppierungen, aber ohne Erfolg.
Kann jemand empfehlen, warum mein var chat
nicht seine Instanz von der Bühne zu sammeln?
Lösung
Haben Sie die Instanznamen Ihrer BasicChat Stufe Instanz festgelegt? Es sollte auf „Chat“ eingestellt werden. So legen Sie es, klicken Sie auf die Bühne Instanz und finden Sie den Instanznamen Feld im Eigenschaftenfenster (erste / top sichtbaren Bereich).