Container verschieben!Geladener .swf verliert die Funktionen

Cpt_Sulo

Erfahrenes Mitglied
Die Überschrift sagt eigentlich schon alles.

Wobei....hallo erstmal!

Ich habe einen main.swf-Film, in diesem einen Container "position1" da kommt die Box rein.
Code:
position1.loadMovie("textbox1.swf");

Diese Textbox hat wiederum Funktionen mit Scrollbuttons usw. Jetzt möchte ich das Ganze auf dem Hauptfilm anfassen und verschieben können ohne das die Funktionen flöten gehen! (Ich hab auch schon irgendwo was gelesen, finds aber nicht mehr da ich den Zusammenhang nicht mehr weiß). Meine Wunschlösung wäre es einen Verschiebe-Button im Teilfilm " textbox1.swf" anzubringen.

Nun wird aus der in den Container "position1" geladenen Textbox "on(press)" ein weiterer Film in einen Container "position2" auf den Hauptfilm geladen. mit diesem soll das ebenfalls funktionieren.

Da es mit der folgenden Variante nicht klapp bitte ich hier um Hilfe:
Code:
position1.onPress = function() {
  	position1.startDrag();
  };
  	position1.onRelease = position1.onReleaseOutside=function () {
  	position1.stopDrag();
  };

Greez Sulo
 
Hi,

beim Laden in einen Container wird der Container überschrieben.

Lösung: Verwende einen weiteren leeren MC innerhalb Deines Containers und gib ihm z.B. den Instanznamen "ct":
PHP:
container.ct.loadMovie("meinfilm.swf");

container.onPress = function() {
    this.startDrag();
}

container.onRelease = container.onReleaseOutside = function() {
    this.stopDrag();
}

Gruß
.
 
Hey

Ich habs grad umgesetzt.....geht leider nicht!
Der Code sieht nun so aus:
Der Film der in "position2.ct2" hinein kommt wird im Film "textbox1.swf" erst geladen.
PHP:
position1.ct1.loadMovie("textbox1.swf");
   position1.onPress = function() {
   	position1.startDrag();
   };
   position1.onRelease = position1.onReleaseOutside=function () {
   	position1.stopDrag();
   };
   position2.onPress = function() {
   	this.startDrag();
   };
   position2.onRelease = position2.onReleaseOutside=function () {
   	this.stopDrag();
   };

Das Verschieben funktioniert wunderbar.......nur der geladene Film nicht. Es sieht allerdings so aus, als würde der Film "textbox1.swf" abgespielt, da dieser versucht eine .php Datei auszulesen. das steht im ersten Bild des Filmes.

Ich poste hier mal die Dateien, bzw. das Projekt.(Frage: Ist es Sinnvoll im Falle mehrerer verschachtelter Filme das Ganze als Projekt anzulegen? hier die ciw_neu.flp)

Greez Sulo
 

Anhänge

Hi,

Der Film der in "position2.ct2" hinein kommt wird im Film "textbox1.swf" erst geladen.
Verstehe ich nicht ganz, denn textbox1.swf lädt keine andere Flashdatei nach (nur einige Variablen vom Server).

Du musst im Hauptfilm lediglich auch textbox2.swf laden, dann klappt auch alles - oder hab ich das Problem falsch verstanden?
PHP:
position1.ct1.loadMovie("textbox1.swf");
position2.ct2.loadMovie("textbox2.swf");

position1.onPress = function() {
	position1.startDrag();
}
position1.onRelease = position1.onReleaseOutside=function () {
	position1.stopDrag();
}
position2.onPress = function() {
	this.startDrag();
}
position2.onRelease = position2.onReleaseOutside=function () {
	this.stopDrag();
}

Gruß
.
 
Hey nochmal....

Richtig....du hast es nicht ganz verstanden......^^

In der "textbox1" kann mann die zwischen Inhalten wählen (unterschiedliche .php-Files). Wählt man die 2te, spielt sich das Ganze in Frame 3 und 4 ab. Dort findet man dann den Button um die "textbox2" ebenfalls in einen Container in den Hauptfilm zu laden. Das funktioniert soweit auch wie ich das möchte.

Das verbliebene Problem ist, das die Filme "textbox1 und 2" ihre eigentlichen Funktionen verloren haben, sobald sie in den Hauptfilm geladen werden. Ich habe dazu heut selber nochmals gestöbert, und gelesen, das dies mit _root. Beziehungen zu tun haben kann. Nur habe ich keine _root. Strukturen verwendet.....ähhm....soweit ich weiß.

Sobald ich den on(.....)..Drag...... Code einfüge kann ich das fenster verschieben und der geladene Film ist dann quasi tod. Nehm ich den Code wieder raus, lässt sich der Film wieder bedienen.

Ich hoffe das du mein Problem verstehst, ansonsten meld dich nochmal....

Thx Sulo
 
*Patsch* (an die Stirn schlag)

Nun hab auch ich es verstanden. ^^

Klar, wenn Du einen Maushandler (onPress etc.) auf dem Container liegen hast, funktionieren keine Mausereignisse mehr in den enthaltenen MovieClips.

Ich hab Dir das mal so modifiziert, dass es funktioniert:
  • Du brauchst eigentlich nur einen Container "position". Dieser enthält neben dem Clip zum Einladen einer SWF auf einer weiteren Ebene einen (unsichtbaren) MC "pad", der als Anfasser zum Verschieben dient.

  • Auf _root gibt es nun eine Funktion, mit der in einen der beiden Container eine swf-Datei geladen wird. Das macht deshalb Sinn, weil Du nun eine Art "Preloader" brauchst, um die Größe des Anfassers richtig einzustellen.
  • Ich habe eine globale Variable "root" angelegt, die die Pfadangaben vereinfachen sollte.

  • Die unloadMovie-Syntax in der textbox2 war fehlerhaft.

Gruß
.
 

Anhänge

Zurück