Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 07-01-2012, 18:13   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2011
Beiträge: 9
Variable SWFs in MovieClips laden

Hallo,
ich versuche mich gerade daran, variable SWFs zunächst zu laden und dann einem MovieClip beim ersten Frame gestoppt zu übergeben.
Dazu gedachte ich erst einmal eine solche Klasse anzulegen:
Code:
public function loadswf(name:String):void
{
var loader:Loader = new Loader();
var url:String = name+".swf"
loader.load(new URLRequest(url));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadcomplete);
}
Das funktioniert soweit einwandfrei. loadcomplete wird aufgerufen. Nun bin ich aber nicht sicher, wie ich loadcomplete gestalten kann. Der MovieClip, dem der Inhalt jeweils übergeben soll, existiert bereits. Der Name des MCs ist gleich dem Inhalt von name. Wie soll ich diesen jetzt ansprechen und wie den Loader? Oder muss ich es ganz anders machen?
Ich hatte es mir wie folgt gedacht, aber das scheint nicht zu funktionieren (und leider zeigt mir mein Flashbuilder auch keiner Fehlermeldungen an, da er ewig auf die Verbindung zur laufenden Anwendung wartet):
Code:
public function loadcomplete(e:Event):void
{
var myPattern:RegExp = /.swf/; 
var name:String = e.currentTarget.url.replace(myPattern, "");
this[name] = MovieClip(e.currentTarget.content).gotoAndStop(1);
Ich bin mir allerdings sicher, dass die loadcomplete Funktion aufgerufen wird, das habe ich überprüft.
Scherox ist offline   Mit Zitat antworten
Alt 07-01-2012, 18:31   #2 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Auch wenn's in AS3 als eher unschick gilt mit name-Properties rumzuspielen:
Du kannst den Namen doch einfach in der Eigenschaft name der jeweiligen Loader-Instanz speichern und später (mit LoaderInfo(e.target).loader.name) von dort wieder auslesen?!


Es ist mir allerdings etwas schleierhaft, was Du mit dieser Zeile hier bezwecken willst:
Zitat:
Zitat von Scherox Beitrag anzeigen
Code:
this[name] = MovieClip(e.currentTarget.content).gotoAndStop(1);
Meinst Du vielleicht sowas:
ActionScript:
  1. import flash.display.DisplayObjectContainer;
  2. import flash.display.LoaderInfo;
  3. import flash.display.MovieClip;
  4.  
  5. var name:String = LoaderInfo(e.target).loader.name;
  6. var mc:MovieClip = LoaderInfo(e.target).content as MovieClip;
  7. if(mc) {
  8.     DisplayObjectContainer(this[name]).addChild(mc);
  9.     mc.gotoAndStop(1);
  10. }
Falls ja, ist diese ganze Konstruktion doch eigentlich überflüssig, weil Du die Inhalte auch einfach ohne diese CMC-Container in die Anzeigeliste hängen könntest?!
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!

Geändert von Martin Kraft (07-01-2012 um 18:35 Uhr)
Martin Kraft ist offline   Mit Zitat antworten
Alt 08-01-2012, 18:20   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2011
Beiträge: 9
Das hat mir schon einmal geholfen, danke. Ich krieg die Informationen mit dem Event jetzt alle rüber. Allerdings scheint die Steuerung nicht zu funktionieren. Meine SWFs bestehen einfach nur aus 7/8 Frames, die ablaufen.
Code:
package
{
	import flash.display.MovieClip;
	import flash.display.Loader;
	import flash.display.LoaderInfo;
	
	import flash.events.Event;
	
	import flash.net.URLRequest;
	
	public class Animation extends MovieClip
	{
		public function Animation()
		{
			load();
		}
		public function load():void
		{
			var loader:Loader = new Loader();
			loader.load(new URLRequest("Test.swf"));
			loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete);
		}
		public function complete(e:Event):void
		{
			var mc:MovieClip = LoaderInfo(e.target).content as MovieClip;
			this.addChild(mc);
			mc.stop();
		}
	}
}
Das ist jetzt zur Vereinfachung das komplette Programm. Die Animation läuft jedoch weiterhin als Endlosschleife und stoppt nicht. Was mache ich falsch?
Scherox ist offline   Mit Zitat antworten
Alt 08-01-2012, 18:28   #4 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
  • Lass Dir in complete mal folgendes tracen:
    ActionScript:
    1. trace(mc+" / "+mc.currentFrame+" / "+mc.totalFrames);

  • Bekommst Du Fehlermeldungen? Wenn ja, welche?

  • Enthält Animation eigentlich irgendeine Zeitleistenanimation? Falls nicht lass die Klasse mal bei Sprite statt MovieClip erben (dann klappst auch mit den Fehlermeldungen )!
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!

Geändert von Martin Kraft (08-01-2012 um 18:31 Uhr)
Martin Kraft ist offline   Mit Zitat antworten
Alt 08-01-2012, 19:05   #5 (permalink)
Neuer User
 
Registriert seit: Nov 2011
Beiträge: 9
Er gibt mir folgendes aus:
[SWF] Animation.swf - 1.651 Byte nach Dekomprimierung
[SWF] Test.swf - 13.721 Byte nach Dekomprimierung
[object MovieClip] / 1 / 1

Mehr nicht. Keine Fehlermeldungen. Der MovieClip scheint wohl aus nur einem Frame zu bestehen, allerdings bewegt er sich dennoch munter weiter. Es ändert sich an der Ausgabe auch nichts, wenn ich sie mit Enter_Frame immer wieder ausgeben lasse.

Geändert von Scherox (08-01-2012 um 19:16 Uhr)
Scherox ist offline   Mit Zitat antworten
Alt 08-01-2012, 22:55   #6 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Dann liegt doch die Vermutung nahe, dass garnicht die Hauptzeitleiste loopt (wie auch mit einem Frame), sondern irgend ein untergeordneter MovieClip.

Ein Blick in die FLA sollte da eigentlich Klarheit schaffen. Nur klingt für mich das Wort »Dekomprimierung« nicht so, als hättest Du Zugriff auf diese?! Wenn ja: Darf man Fragen wieso nicht?
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
event.complete, movieclip, swf, variable dynamisch

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
MovieClips in MovieClip laden + Dynamisches Bilder laden maltem Flash CS3 Professional 2 03-07-2008 08:16
Auf gleiche Variable aus unterschiedlichen SWFs zugreifen dlux2k5 Flash MX 2004 2 08-02-2006 11:50
Movieclips eines Films in einzelne SWFs zerlegen?! vinter Flash MX 2 19-04-2004 12:35
Movieclips - swapDepths - verschiedene swfs? rorschach Flash MX 8 28-03-2004 18:18
steuerung der _root.timeline aus movieclips in eingebundenen swfs? A_D Autorensysteme 2 25-06-2003 13:36


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:39 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele