Hi Peter, Das VideoObject direkt attachen, geht nach dem was mir bekannt ist wirklich nicht. Ich habe mir zu diesem Zweck eine VideoClip Komponente geschrieben, die ich bei entsprechenden Projekten über eine SharedLibrary allen Scopes der swf zur Verfügung stelle. Diese ist eine Subclass von MovieClip. Die Komponente beinhaltet ein VideoObject. Zusätzlich hab ich das Handling (NetStream, etc.) in die Komponenten Klasse implementiert und die Möglichkeit vorgesehen einen externen Controller zu verknüpfen, der über definierte Events das Playback des Movies steuert. Das funktioniert schon ziemlich komfortabel. Die FLVPlayback und die anderen Komponenten nutze ich eher selten, weil ich das Framework dahinter einfach zu "fett" finde. Gruß Timo -----Ursprüngliche Nachricht----- Von: ascoders-bounce@xxxxxxxxxxxxx [mailto:ascoders-bounce@xxxxxxxxxxxxx]Im Auftrag von Peter Gesendet: Dienstag, 12. Juni 2007 11:03 An: ascoders@xxxxxxxxxxxxx Betreff: [ascoders] AW: AW: Re: AW: Re: AW: String in Klassenreferenz umwandeln? Das ist super, vor allem habe ich dann die Blenden nicht im Constructor vom View rumfliegen und ich kann die Library ebenfalls Abfragen welche Animationen vorhanden sind. So finde ich es auf jedenfall noch sauberer. Mal sehen wie ich in einem halben Jahr oder so da durchsteige... Momentan ist es zumindest kein Problem. Noch ne dämliche Frage? Muss man eigentlich um ein Videoobjekt aus einer Klasse heraus aufzurufen und zu setzen (auf die Bühne) immer nur mit Komponenten arbeiten? Bisher kenne ich nur die Methode Videoobjekt erstellen und direkt in einen Film verschachteln und diesen aus der Lib in die Bühne attachen. Oder ne Komponente entwickeln und die Komponente per createClassObject setzen. Das Videoobjekt selber kann man nämlich nicht auf die Bühne attachen. Wie gesagt vielleicht nutze ich jetzt auch erstmal die FLVPlayback Komponente die sieht ja ziemlich ausgereift aus. Grüße und danke Peter -----Ursprüngliche Nachricht----- Von: ascoders-bounce@xxxxxxxxxxxxx [mailto:ascoders-bounce@xxxxxxxxxxxxx] Im Auftrag von Timo Hölzer Gesendet: Dienstag, 12. Juni 2007 09:21 An: ascoders@xxxxxxxxxxxxx Betreff: [ascoders] AW: Re: AW: Re: AW: String in Klassenreferenz umwandeln? Hallo Peter, hallo Martin, ich erlaube mir mal mich einzuklinken. Ich hatte vor kurzem ein ähnliches Problem. Allerdings läßt isch das noch ne ganze Ecke eleganter lösen, denn "eval is wirklich evil" ;-) Ein kleines Beispiel findet ihr hier: http://timo.md1005.de/exchange/peter.zip hier aber schon mal der Code: StrongTransition.as ====================================================================== class classes.StrongTransition { static function showClip(){ trace("ZEIG MICH") } } ====================================================================== NotSoStrongTransition.as ====================================================================== class classes.NotSoStrongTransition { static function showClip(){ trace("ZEIG MICH NOT SO STRONG"); } } ====================================================================== Da Du sowieso nur die statische(n) Methode(n) nutzen möchtest, kannst Du dir den Kontstruktor sparen. TransitionLibrary.as ====================================================================== class classes.TransitionLibrary { private static var StrongTransition:Function = classes.StrongTransition; private static var NotSoStrongTransition:Function = classes.NotSoStrongTransition; } ====================================================================== Die Trasitions in statischen Variablen eines Library Klasse zu speichern, zwingt den Kompiler die enthaltenen Trasitions auch in die swf zu kompilieren View.as ====================================================================== class classes.View { function View(){}; public function showClip(className:String) { classes.TransitionLibrary[className].showClip(); } } ====================================================================== Die View greift dann auf die TransitionLibrary zu und kann so anhand eines übergebenen Strings eine Transition verwenden. FLA ====================================================================== import classes.View var myView:View = new View() myView.showClip("StrongTransition") myView.showClip("NotSoStrongTransition") ====================================================================== Gruß aus Berlin Timo H. -----Ursprüngliche Nachricht----- Von: ascoders-bounce@xxxxxxxxxxxxx [mailto:ascoders-bounce@xxxxxxxxxxxxx]Im Auftrag von Martin Bücker Gesendet: Sonntag, 10. Juni 2007 23:38 An: ascoders@xxxxxxxxxxxxx Betreff: [ascoders] Re: AW: Re: AW: String in Klassenreferenz umwandeln? Hallo Peter, warum man den kompletten Paketpfad trotz import-Anweisung zur Klasse angeben muss, kann ich Dir auch nicht sagen. Da musst Du mal bei Adobe nachfragen ;) Die eval-Funktion sollte man immer mit Bedacht einsetzen, obwohl man damit nicht so evil sein kann wie unter Javascript. Aber wenn es nützlich ist ... warum nicht?! Ansonsten solltest Du Dir vielleicht Gedanken über Dein Applikationsdesign machen, ggf. gibt es ja eine bessere Lösung, die ohne eval auskommt. Gruß Martin Peter schrieb: > Super, > > So funktionierts, wichtig ist definitive der Klassenpfad, warum kann ich > nicht sagen da ja normalerweise die Beziehung durch die Importanweisung > hergestellt wird. Damit die Klasse vom Compiler auch eingebunden wird habe > ich im Constructor einen inititlaisierungsaufruf auf die Klasse geschrieben. > Was Du mit einem nochmaligen Import meinst hab ich nicht richtig verstanden, > funktioniert so aber auch. > > Danke > > Peter > > Ps: Sagt man nicht immer eval is evil ;] > Ein paar Freunde von mir meinten mit eval strings in Klassen umwandeln hört > sich dreckig an, aber ich wüsste sonst nicht wie ich Animationsarten > (Klassen) per XML sonst übergeben könnte :] Eigentlich siehts nämlich > relativ sauber aus. > > -----Ursprüngliche Nachricht----- > Von: ascoders-bounce@xxxxxxxxxxxxx [mailto:ascoders-bounce@xxxxxxxxxxxxx] Im > Auftrag von Martin Bücker > Gesendet: Samstag, 9. Juni 2007 22:36 > An: ascoders@xxxxxxxxxxxxx > Betreff: [ascoders] Re: AW: String in Klassenreferenz umwandeln? > > Hallo Peter! > > Probiere es mal mit eval unter Angabe des kompletten Paketpfades. > > Also so: > ------------ > import classes.StrongTransition; > class classes.View { > function View(){} > public function showClip(className:String) { > classRef = eval("classes." + className); > classRef.showClip(); > } > } > ------------ > > Wichtig ist, dass Du die dynamisch angesprochenen Klassen, falls Sie > ausschließlich dynamisch angesprochen werden, in der FLA vor dem Starten > deines Hauptprogramms irgendwie ansprichst, damit der Compiler diese > einbindet. Z.B. durch erneutes importieren mit: > import classes.StrongTransition; > > Gruß > Martin > > > Peter schrieb: >> Ich habs jetzt erstmal ziemlich dämlich gelöst und zwar so >> >> >> >> public function showClip(evtObj:Object) { >> >> // Führt eigentlich dann die Blendenanimation >> aus um den neuen Clip darzustellen. >> >> switch (evtObj.parameters.ani) { >> >> case "StrongTransition": >> >> >> trace(StrongTransition.showClip()); >> >> break; >> >> } >> >> } >> >> >> >> Trotzdem würde mich es riesig freuen wenn mir einer sagen kann wie ich >> die Klasse direkt aufrufen kann. >> >> Ich hatte ja gehofft das es gehen könnte >> this[evtObj.parameters.ani].showClip() >> >> >> >> Bin mal gespannt ob sich noch jemand dazu meldet! >> >> >> >> Grüße aus Köln >> >> >> >> Peter >> >> >> >> ------------------------------------------------------------------------ >> >> *Von:* ascoders-bounce@xxxxxxxxxxxxx >> [mailto:ascoders-bounce@xxxxxxxxxxxxx] *Im Auftrag von *Peter >> *Gesendet:* Samstag, 9. Juni 2007 14:44 >> *An:* ascoders@xxxxxxxxxxxxx >> *Betreff:* [ascoders] String in Klassenreferenz umwandeln? >> >> >> >> Hi Zusammen, >> >> >> >> gibt es eine Möglichkeit eine von mir statische Klasse innerhalb einer >> anderen Klasse als String zu übergeben und dann den übergebenen String >> als Klasse aufzurufen? >> >> Wenn ich nämlich im View die Klasse direkt eingebe funktioniert es, >> kommt der Klassenname aber als String bin ich nicht in der Lage durch >> eval oder andere Möglichkeiten diesen String wieder in eine >> Klassenreferenz oder einen Klassennamen umzuwandeln. >> >> >> >> Gibt es da irgendeine Möglichkeit, da ich der Klasse gerne andere >> Klassen anhand von einem XML Dokument übergeben würde? >> >> >> >> >> >> Grüße Peter >> >> >> >> Ps. Im Netz habe ich nur ein paar Beispiele wie z.B. >> getClassPathByString oder so gefunden aber da bekomme ich bei der >> Ausgabe immer nur ein undefined. >> >> Und mit dem UIObject.createObject komme ich glaube ich auch nicht weiter >> da es ja nur für Komponenten von Flash ist, oder? >> >> >> >> Simples Beispiel? >> >> >> >> // Die statische Klasse >> >> >> >> class classes.StrongTransition { >> >> function StrongTransition(){} >> >> >> >> static function showClip() { >> >> trace("ZEIG MICH"); >> >> } >> >> >> >> } >> >> >> >> >> >> >> >> // Die Klasse die ausführen soll >> >> import classe.StrongTransition; >> >> >> >> class classes.View { >> >> >> >> function View(){} >> >> >> >> //Im String wird die statische Klasse übergeben ?StrongTransition? >> >> public function showClip(test:String) { >> >> var class = test; >> >> class.showClip(); >> >> } >> >> >> >> >> > -------------------------------------------------------------- > Archiv : //www.freelists.org/archives/ascoders/ > RSS : //www.freelists.org/archives/ascoders/feed.rss > Optionen : //www.freelists.org/list/ascoders > -------------------------------------------------------------- > > -------------------------------------------------------------- > Archiv : //www.freelists.org/archives/ascoders/ > RSS : //www.freelists.org/archives/ascoders/feed.rss > Optionen : //www.freelists.org/list/ascoders > -------------------------------------------------------------- -------------------------------------------------------------- Archiv : //www.freelists.org/archives/ascoders/ RSS : //www.freelists.org/archives/ascoders/feed.rss Optionen : //www.freelists.org/list/ascoders -------------------------------------------------------------- -------------------------------------------------------------- Archiv : //www.freelists.org/archives/ascoders/ RSS : //www.freelists.org/archives/ascoders/feed.rss Optionen : //www.freelists.org/list/ascoders -------------------------------------------------------------- -------------------------------------------------------------- Archiv : //www.freelists.org/archives/ascoders/ RSS : //www.freelists.org/archives/ascoders/feed.rss Optionen : //www.freelists.org/list/ascoders -------------------------------------------------------------- -------------------------------------------------------------- Archiv : //www.freelists.org/archives/ascoders/ RSS : //www.freelists.org/archives/ascoders/feed.rss Optionen : //www.freelists.org/list/ascoders --------------------------------------------------------------