Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-04-2012, 11:32   #1 (permalink)
4DD
Neuer User
 
Registriert seit: Jun 2006
Beiträge: 7
parent / root

Guten Tag,

ich hab ein problem mit meinem Flash-Projekt:

ich habe eine SWF, in die eine zweite SWF hineingeladen wird. In der zweiten SWF ist nun ein Button, der die Mutter-SWF ansprechen soll (ein klassischer Zurück-Button halt). Dieses funktioniert nicht so richtig:

Code:
btnzurueck.addEventListener(
  MouseEvent.MOUSE_DOWN,
  function(evt:MouseEvent):void {
  MovieClip(parent.root).gotoAndPlay(15);
 }
  )
Das funktioniert, allerdings nur lokal (wenn ich die SWF aufrufe, nicht in eine HTML site eingebunden). Online tut es nix. Kann mir einer hierzu Hilfe geben? Das root würde ich eigentlich gerne vermeiden, aber mit this.parent.parent tut es auch nicht.

Danke schonmal im Vorraus
4DD ist offline   Mit Zitat antworten
Alt 04-04-2012, 12:06   #2 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 7.306
  • Liegen die SWFs beide online und auf demselben Server?
  • Hast Du Dir mal traceb lassen worauf parent und root zeigen?
  • Kann man sich das irgendwo online ansehn?
  • Das parent vor dem root ist übrigens überflüssig. Wenn parent mit root verbunden ist, ist es das Objekt selbst auch!
  • Sollte Aufwärtszugriffe aus nachgeladen SWFs (insbesondere über eine globale Referenz wie root) sollte man übrigens vermeiden! Stattdessen empfielt es sich in der 'UnterSWF' eine Event zu dispatchen, auf das man in der 'HauptSWF' einen Listener registriert, der dann die gewünschten Aktionen ausführt!
__________________
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
Alt 05-04-2012, 11:44   #3 (permalink)
4DD
Neuer User
 
Registriert seit: Jun 2006
Beiträge: 7
Danke für die Antwort, hab ich gemacht, aber funktioniert wieder nur offline, nicht online.

Hauptfilm:
Code:
addEventListener("ButtonKlick", buttonEvent);  
function buttonEvent(e:Event):void { 
    this.gotoAndPlay(15); 
}
Geladene SWF
Code:
btnzurueck.addEventListener(
  MouseEvent.MOUSE_DOWN,
  function(evt:MouseEvent):void {
  dispatchEvent(new Event("ButtonKlick", true, true)); 
 }
  )
4DD ist offline   Mit Zitat antworten
Alt 05-04-2012, 11:49   #4 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 7.306
Du musst den Listener natürlich bei dem Anzeigeobjekt registrieren, in dem Du später auch das Event dispatchst. In diesem Fall ist das wahrscheinlich:
Code:
  1. deinLoader.content.addEventListener(...
P.S.: Beantworte mal meine Fragen von oben!
__________________
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
Alt 05-04-2012, 12:41   #5 (permalink)
4DD
Neuer User
 
Registriert seit: Jun 2006
Beiträge: 7
Die SWFs sind beide online und auf dem selben Server.

Wenn ich es registriere erhalte ich den Fehler #1009: Der Zugriff auf eine Eigenschaft oder eine Methode eines null-Objektverweises ist nicht möglich.

Code:
var request:URLRequest=new URLRequest("swf/serie11.swf");
var loader:Loader = new Loader();
loader.content.addEventListener("buttonKlick", buttonEvent);
loader.load(request);
addChild(loader);
swapChildren(loader, swapper);
loader.x=290;
loader.y=-218;



function buttonEvent(evt:Event):void { 
    this.gotoAndPlay(15); 
}
Online Angucken kann ich dir bei bedarf per PM schicken.
Bin leider nicht so firm in AS3, daher bitte ich um verständnis.
4DD ist offline   Mit Zitat antworten
Alt 05-04-2012, 12:56   #6 (permalink)
4DD
Neuer User
 
Registriert seit: Jun 2006
Beiträge: 7
Habs gelöst, vielen Dank nochmal für deine Hilfe.
4DD ist offline   Mit Zitat antworten
Alt 05-04-2012, 13:03   #7 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 7.306
Zitat:
Zitat von 4DD Beitrag anzeigen
Wenn ich es registriere erhalte ich den Fehler #1009: Der Zugriff auf eine Eigenschaft oder eine Methode eines null-Objektverweises ist nicht möglich.
Klar, wäre ja auch ziemlich unlogisch, wenn man auf etwas zugreifen könnte, was noch garnicht geladen wurde Versuch's mal so:

Haupt-SWF:
Code:
  1. import flash.display.Loader;
  2. import flash.events.Event;
  3. import flash.net.URLRequest;
  4.  
  5. var loader:Loader = new Loader();
  6. loader.contentLoaderInfo.addEventListener(Event.INIT, initLoaderContent);
  7. loader.load(new URLRequest("swf/serie11.swf"));
  8.  
  9. function initLoaderContent(e:Event):void {
  10.     trace(loader+" inited, content "+loader.content);
  11.     loader.content.addEventListener("buttonClick", handleButtonClick);
  12.    
  13.     addChildAt(loader, getChildIndex(swapper));
  14.     loader.x = 290;
  15.    
  16.     loader.y = -218;   
  17. }
  18.  
  19. function handleButtonClick(evt:Event):void {
  20.     trace("button was clicked");
  21.     gotoAndPlay(15);
  22. }
Nachgeladene SWF:
Code:
  1. import flash.events.Event;
  2. import flash.events.MouseEvent;
  3.  
  4. btnzurueck.addEventListener(MouseEvent.CLICK, handleBtnzurueckClicked);
  5.  
  6. function handleBtnzurueckClicked(e:MouseEvent):void {
  7.     dispatchEvent(new Event("buttonClick", true, true));
  8. }
Und immer auf die Groß-Klein-Schreibungachten
Zitat:
Zitat von 4DD Beitrag anzeigen
Online Angucken kann ich dir bei bedarf per PM schicken.
Mach das.
__________________
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

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
[Flash CS3] AS2->AS3: Root / parent / CMS / globale Instanz Firemice Flash Einsteiger 3 14-06-2010 00:24
root this parent flashmaus ActionScript 1 14 11-08-2009 06:20
[Flash 8] Navigation (root und Parent) HC-Flasher Flash Einsteiger 5 04-03-2009 15:49
Pfad-Probleme (this/root/parent) rowolo ActionScript 1 15 12-01-2003 22:15
root ? parent ? Zufall Flash 4 und Flash 5 2 19-01-2002 19:09


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:47 Uhr.

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


Copyright ©1999 – 2014 Marc Thiele