ERLEDIGT
NEIN
NEIN
ANTWORTEN
10
10
ZUGRIFFE
916
916
EMPFEHLEN
-
Guten Morgen,
ich habe mal eine Frage. Ist es möglich eine XML struktur in einen Haupfilm zu laden, diese in variable umzuändern und diese variablen dann an eine externe swf weiterzugeben
und wenn ja, wie ist das denn möglich...da stosse ich an meine Grenzen.
Bitte um Hilfe.
Ich arbeite mit AS 3.
-
Hi,
was meinst du mit externer swf?
Eine swf die zur laufzeit in den Hautpfilm geladen wird oder eine swf die nichts mit dem eigentlichen Film zu tun hat und zB. auf einer anderen domain liegt?
Mehr Infos....AS3/Flex - Java - ObjC - PHP
-
ne ne sie wird nicht aus einer anderen Domain geladen, sie wird zur Laufzeit der main.swf geladen.
Also ich kann ja mal mein Script darstellen, wie ich es bis jetzt gemacht habe, aber irgendwo liegt da drin ein Fehler..
und im externen habe ich bis jetzt stehen..PHP-Code:var tor = [];
var kalender = [];
var aktTag = [];
var gutscheine = [];
var loader:URLLoader = new URLLoader();
loader.load(new URLRequest("adventskalender.php.xml"));
loader.addEventListener(Event.COMPLETE, ladeXML);
function ladeXML(evt:Event) {
var xml_dokument:XML = new XML(evt.target.data);
xml_dokument.ignoreWhitespace = true;
xml_dokument.ignoreComments = true;
for each (var knoten:XML in xml_dokument.aktTag) {
trace("lade aktTag mit " +knoten.text());
}
for each (var knoten2:XML in xml_dokument.gutscheine.tor) {
trace("lade tor mit " + knoten2.@id );
trace("lade inhalt "+ knoten2.inhalt.@typ);
var tor = new Object();
tor.id = knoten2.@id;
tor.inhalt = knoten2.inhalt.text();
tor.typ = knoten2.inhalt.@typ;
gutscheine[gutscheine.length] = tor;
}
var externeSWF:MovieClip;
door1_mc.addEventListener(MouseEvent.CLICK, pruefen);
var laden:Loader = new Loader();
function pruefen( event:Event ):void{
if (knoten == "1") {
laden.contentLoaderInfo.addEventListener( Event.COMPLETE, listener );
laden.load( new URLRequest( "tor_1_new.swf" ) );
}
function listener( event:Event ):void{
this.externeSWF = laden.content as MovieClip;
this.externesSWF.addXMLData(xml_dokument);
addChildAt( this.externeSWF, 29 );
}
}
}
kann jemand was damit anfangen?PHP-Code:function addXMLData(value:Array):void {
trace( value );
}
-
Du übergibst der Funktion ein Objekt vom datentyp XML obwohl es ein Array will.
...und jetzt seh ich's gerade (nächste mal bitten den code besser formatieren) das du die listener in der Funktion ladeXML verschachtelt hast.PHP-Code:this.externesSWF.addXMLData(xml_dokument);
Schreibe diese außerhalb.Geändert von Denniz (29.11.09 um 14:17 Uhr)
AS3/Flex - Java - ObjC - PHP
-
und sowas darf man nicht machen? hast du eine Lösung für mich?
-
Entweder legst du fest welchen datentyp dein Argument habe soll und gibst auch ein Objekt von diesem Datentyp (Array , XML, ...)an die Funktion oder du kennzeichnest ein dynamischen Datentyp mit * - (strikte typisierung ist aber vorzuziehen)
PHP-Code:function addXMLData(value:*):void {
trace( value );
}
AS3/Flex - Java - ObjC - PHP
-
cool, danke für die Aufklärung. Werde mich, wenn ich das alles hier geschafft habe, mich intensive mit strikter typisierung beschäftigen. Ich springe zur Zeit immer von einem Thema zum nächsten ohne mich dabei intensiv mit zu beschäftigen, da ist es gut, wenn man jemanden mal findet, der einem das erklärt. aber ich werde das alles nochmal in ruhe studieren. bücher und videomaterial ist da. nur die Zeit fehlt gerade.
wie lese ich denn dann die geladene XML aus dem Hauptfilm im externen Movie aus sodass ich z.B. in einem dynamischen Textfeld einen wert eingetragen bekomme, der in einem XML knoten steht
-
Du hast ja deine XML schon geparsed und in einem Array gutscheine abgelegt:
So könntest du darauf zugreifen:
meinTextFeld.text = gutscheine[0].inhalt;Geändert von Denniz (29.11.09 um 23:43 Uhr)
AS3/Flex - Java - ObjC - PHP
-
Hey du danke, dass habe ich jetzt hinbekommen.
Hier mal das Script vielleicht kann es jemand anderes auch gebrauchen
so und in der externen swf habe ich im script folgendes stehenPHP-Code:var tor = [];
var kalender = [];
var aktTag = [];
var gutscheine = [];
var loader:URLLoader = new URLLoader();
loader.load(new URLRequest("adventskalender.php.xml"));
loader.addEventListener(Event.COMPLETE, ladeXML);
function ladeXML(evt:Event) {
var xml_dokument:XML = new XML(evt.target.data);
xml_dokument.ignoreWhitespace = true;
xml_dokument.ignoreComments = true;
for each (var knoten:XML in xml_dokument.aktTag) {
trace("lade aktTag mit " +knoten.text());
}
for each (var knoten2:XML in xml_dokument.gutscheine.tor) {
trace("lade tor mit " + knoten2 );
trace("lade inhalt "+ knoten2.inhalt.@typ);
var tor = new Object();
tor.id = knoten2.@id;
tor.inhalt = knoten2.inhalt.text();
tor.typ = knoten2.inhalt.@typ;
gutscheine[gutscheine.length] = tor;
}
//xml einlesen und die knoten aus der XML ansprechen und ausgeben
var externeSWF:MovieClip;
door1_mc.addEventListener(MouseEvent.CLICK, pruefen);
var laden:Loader = new Loader();
function pruefen( event:Event ):void{
if (knoten == "1") { // wenn der knoten "aktTag" der xml die zeichenkette "1" besitzt darf das törchen geöffnet werden
laden.contentLoaderInfo.addEventListener( Event.COMPLETE, listener );
laden.load( new URLRequest( "tor_1_new.swf" ) );
//addChildAt(laden, 28);
close_btn.visible = true;
}
function listener( event:Event ):void{
this.externesSWF = laden.content as MovieClip;
this.externesSWF.addXMLData(gutscheine);
addChildAt( this.externesSWF, 28 );
}
meine Frage lautet jetzt, da meine externe Swf aus mehreren Frames besteht, wie kann das array "gutscheine" denn auf ein anderes Frame im gleichen Film übergeben, oder bestimmte Teile des Arrays?PHP-Code:var gutscheine:Array;
function addXMLData(value:Array):void {
gutscheine = value;
ladeTor(2);
}
function ladeTor(nr:int):void {
for each ( var tor:Object in gutscheine )
{
trace( "Tor ID: ", tor.id );
trace( "Tor Typ: ", tor.typ );
trace( "Tor Inhalt: ", tor.inhalt );
trace( "------------------------------\n" );
if (tor.id == 2)
{
if (tor.typ == "drucken") {
drucken_txt.text = tor.inhalt;
teilnehmen_btn.visible = true;
}else if (tor.typ == "tagesverlosung") {
tagesverlosung_txt.text = tor.inhalt;
tagesverlosung_btn.visible = true;
} else if(tor.typ == "texteingabe") {
gutscheine_txt.text = tor.inhalt;
verlosung_btn.visible = true;
}
break;
}
}
}
-
AS3/Flex - Java - ObjC - PHP
-
soo ich habe es jetzt endlich geschafft die xml einzulesen...
es sieht so aus
sie wird auch an den externen Clip der in den Hauptfilm geladen wird übergeben..PHP-Code:var laden_int:URLLoader = new URLLoader();
laden_int.load(new URLRequest("adventskalender_int.xml"));
laden_int.addEventListener(Event.COMPLETE, ladeXML2);
var daten:Object = {};
var kalender:Object = {};
var gutscheine:Array = [];
function ladeXML2(evt:Event) {
var xml_dokument_int:XML = new XML(evt.target.data);
xml_dokument_int.ignoreWhitespace = true;
xml_dokument_int.ignoreComments = true;
for each (var knoten:XML in xml_dokument_int.aktTag) {
trace("lade aktTag mit " +knoten);
kalender[kalender.length] = knoten;
var aktTag = new Object();
aktTag = knoten.text();
}
for each (var knoten2:XML in xml_dokument_int.gutscheine.tor) {
trace("lade tor mit " + knoten2 );
trace("lade inhalt "+ knoten2.inhalt.@typ);
var tor = new Object();
tor.id = knoten2.@id;
tor.inhalt = knoten2.inhalt.text();
tor.typ = knoten2.inhalt.@typ;
gutscheine[gutscheine.length] = tor;
}
trace("lade xml_dokument_int mit " + daten );
daten.studio = xml_dokument_int.daten.studio.text();
daten.sz_home_wo = xml_dokument_int.daten.sz_home_wo.text();
daten.studio = xml_dokument_int.studio.text();
daten.sz_home_wo = xml_dokument_int.daten.sz_home_wo.text();
daten.sz_home_name = xml_dokument_int.daten.sz_home_name.text();
daten.sz_home_strasse = xml_dokument_int.daten.sz_home_strasse.text();
daten.sz_home_plz = xml_dokument_int.daten.sz_home_plz.text();
daten.sz_home_ort = xml_dokument_int.daten.sz_home_ort.text();
daten.kontakt1 = xml_dokument_int.daten.kontakt1.text();
daten.kontakt2 = xml_dokument_int.daten.kontakt2.text();
das Script dort schaut dann so aus
so jetzt habe ich aber noch eine Frage, da dieses Script auf dem ersten Frame liegt, wird die Ausgabe in den Textfeldern auch nur im ersten Frame angezeigt, wie schaffe ich es denn das in einem anderen Frame auch eine Ausgabe erscheint?PHP-Code:var gutscheine_int:Array;
function addXMLData_int(value:Array):void {
gutscheine_int = value;
ladeTor_int(5);
}
function ladeTor_int(nr:int):void {
for each ( var tor:Object in gutscheine_int )
{
trace( "Tor ID: ", tor.id );
trace( "Tor Typ: ", tor.typ );
trace( "Tor Inhalt: ", tor.inhalt );
trace( "------------------------------\n" );
if(tor.id == 5)
{
if (tor.typ == "drucken") {
teilnehmen_int_btn.visible = true;
drucken_txt.text = tor.inhalt;
} else if (tor.typ == "tagesverlosung") {
tagesverlosung_int_btn.visible = true;
drucken_txt.text = tor.inhalt;
//verdecken_mc.visible = false;
}else if (tor.typ == "texteingabe") {
verlosung_int_btn.visible = true;
drucken_txt.text = tor.inhalt;
//verdecken_mc.visible = false;
}else{
verlosung_ohne_btn.visible = true;
verdecken_btn.visible = true;
}
break;
}
}
}
Ähnliche Themen
-
C Struktur an Funktion übergeben (call by reference) geht nicht. Mit Code.
Von t0xic im Forum C/C++Antworten: 7Letzter Beitrag: 06.12.10, 08:38 -
C++ Struktur an eine DLL übergeben
Von Thurstan im Forum VisualStudio & MFCAntworten: 1Letzter Beitrag: 08.07.08, 11:56 -
definierte Struktur in einer dll übergeben
Von stefano86 im Forum .NET Application und Service DesignAntworten: 0Letzter Beitrag: 14.03.08, 08:25 -
Struktur übergeben -Call by Reference
Von chefsalat- im Forum VisualStudio & MFCAntworten: 8Letzter Beitrag: 22.06.07, 21:55 -
C#-Struktur als Parameter für eine externe DLL-Funktion ( C++ )
Von xMen im Forum .NET ArchivAntworten: 4Letzter Beitrag: 22.02.05, 22:02





Zitieren
Login





