Flashhilfe.de - Flash Community

Methoden geladener swfs steuern. [Flash 11]

 


AntwortenRegistrieren Seite1  

Robert64#1
Benutzerbild von Robert64
Beiträge: 9
Registriert: Aug 2011

22.08.2011, 14:33

Geschätzte Forenten,

trotz intensiver Suche habe ich für folgendes Problem keine Lösung erkannt.

Ich möchte in einen Flashfilm in Illustrator erzeugte swf-Dateien laden und diese mit Actionscript 3 steuern.

Der Zugriff auf die Eigenschaften funktioniert. Das heist ich kann die Position, die Transparenz, die Größe usw. beeinflussen.

Meine Angaben zu den Methoden wie gotoAndStop() werden allerdings ignoriert (es gibt auch keine Fehlermeldung).

Beispielscript:


ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
this.stop();
var geladenesSWF:URLRequest = new URLRequest("geladenesSWFsymbol.swf");
var ladenSWF:Loader = new Loader();

ladenSWF.load(geladenesSWF);

var geladenesSWF_MC:MovieClip = new MovieClip  ;
addChild(geladenesSWF_MC);
//geladenesSWF_MC = ladenSWF.content as MovieClip;
geladenesSWF_MC.addChild(ladenSWF);

btn.addEventListener(MouseEvent.CLICK,Handler);

function Handler(e:Event):void
{
 
 
     geladenesSWF_MC.width = 100; // funktioniert
   geladenesSWF_MC.height = geladenesSWF_MC.width; // funktioniert
   geladenesSWF_MC.y = 150 - geladenesSWF_MC.height / 2; // funktioniert
   geladenesSWF_MC.alpha = 0.5; // funktioniert
   geladenesSWF_MC.gotoAndStop(2); //wird ignoriert !!!

 
}

Vielen Dank für Eure Hilfe.
Schlagwörter: gotoAndStop, swfs steuern
Werbung
Beiträge: 0
Registriert: Feb 2016


willie33#2
Benutzerbild von willie33
Beiträge: 147
Wohnort: Qo'noS
Registriert: Nov 2009

22.08.2011, 14:50

Das ist ganz einfach. Du lädst die SWF Datei mit einem Loader. Um jetzt den geladenen Film zu steuern, musst du auf die "content" Eigenschaft des Loader's zugreifen. Dort kannst du dann Methoden wie z.B. "gotoAndPlay()" aufrufen.
Es ist somit überhaupt nicht notwendig den Loader in einen MovieClip zu packen, was sowieso nichts bringt, da der Container vom Inhalt des Loader's überhaupt keine Ahnung hat.
Loading comments...
Robert64#3
Benutzerbild von Robert64
Beiträge: 9
Registriert: Aug 2011

Themenautor/in

22.08.2011, 15:10

Danke.

Ich versuchte deinen Vorschlag mit folgender Zeile umzusetzen:
ActionScript:
1   ladenSWF.content.gotoAndStop(2);


Leider bekomme ich nun die Fehlermeldung:

"Aufruf für eine möglicherweise nicht definierte Methode gotoAndStop über einen Verweis mit statischem Typ flash.display:DisplayObject."

Im Gesamten:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
stop();
var geladenesSWF:URLRequest = new URLRequest("geladenesSWFsymbol.swf");
var ladenSWF:Loader = new Loader();

ladenSWF.load(geladenesSWF);
addChild(ladenSWF);

btn.addEventListener(MouseEvent.CLICK,Handler);

function Handler(e:Event):void
{
     ladenSWF.width = 100;// funktioniert
   ladenSWF.height = ladenSWF.width;// funktioniert
   ladenSWF.y = 150 - ladenSWF.height / 2;// funktioniert
   ladenSWF.alpha = 0.5;// funktioniert
   ladenSWF.content.gotoAndStop(2);
}
Geändert von Robert64 am 22.08.11 um 15:10 Uhr
willie33#4
Benutzerbild von willie33
Beiträge: 147
Wohnort: Qo'noS
Registriert: Nov 2009

22.08.2011, 16:04

Du musst den Loader content als MovieClip casten. Das machst du so:
ActionScript:
1MovieClip(ladenSWF.content)....

oder
ActionScript:
1(ladenSWF.content as MovieClip)....
Loading comments...
Werbung
Beiträge: 0
Registriert: Feb 2016


Robert64#5
Benutzerbild von Robert64
Beiträge: 9
Registriert: Aug 2011

Themenautor/in

22.08.2011, 16:38

Nochmals vielen Dank.

Es will mir jedoch noch nicht gelingen. Ich setze wohl nicht korrekt um:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
stop();
var geladenesSWF:URLRequest = new URLRequest("geladenesSWFsymbol.swf");
var ladenSWF:Loader = new Loader();

ladenSWF.load(geladenesSWF);
addChild(ladenSWF);

btn.addEventListener(MouseEvent.CLICK,Handler);

function Handler(e:Event):void
{
     MovieClip(ladenSWF.content).gotoAndStop(2);
}


Diser Versuch führt zu folgender Fehlermeldung:

"#1034: Typumwandlung fehlgeschlagen: flash.display::AVM1Movie@2b12b1c9 kann nicht in flash.display.MovieClip umgewandelt werden. at LadendesMC_fla::MainTimeline/Handler()"
cedddy#6
Benutzerbild von cedddy
Beiträge: 572
Registriert: May 2007

22.08.2011, 19:41

hast du mal probiert

1. warten bis der clip gans sicher geladen ist mit einem listener und dann probieren es auszuführen

2. in den bei dem zu ladenen swf clip zu erlauben das er von außen geschaltet werden darf mit
Security.allowDomain("deinedomain");

ich vermute es wird am ersten liegen ein beispiel

ActionScript:
1
2
3
4
5
6
7
swfLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, start);

function start(e:Event):void
{
         MovieClip(swfLoader.content).gotoAndPlay(2);
}

Bitte keine pn´s wegen irgendwelchen fragen zu Threads, dafür gibt es sie ja schließich
Geändert von cedddy am 22.08.11 um 19:43 Uhr
Robert64#7
Benutzerbild von Robert64
Beiträge: 9
Registriert: Aug 2011

Themenautor/in

22.08.2011, 19:44

@willie33

Und dein Weg funktioniert Doch! Nur nicht mit der aus Illsustrator erzeugten swf. Mit einer in Flash erstellten swf geht es. Das Zusammenspiel der Adobe-Programme ist also doch nicht so gut wie die Werbung es verspricht.

Noch einmal vielen Dank.
willie33#8
Benutzerbild von willie33
Beiträge: 147
Wohnort: Qo'noS
Registriert: Nov 2009

23.08.2011, 15:58

Jetzt weiß ich wo das Problem liegt: Es liegt bei Illustrator. Illustrator erstellt offenbar eine SWF für alle FlashPlayer Version vor FP9, und die verwenden alle AVM1. Solche Filme kannst du in AS3 nicht steuern. Nur solche, die für Playerversion 9 und höher und AS3 kompiliert wurden.
Loading comments...

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2020 Sebastian Wichmann - Flashhilfe.de