Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 19-02-2011, 10:49   #1 (permalink)
Neuer User
 
Benutzerbild von Prinzvalium
 
Registriert seit: Jan 2011
Beiträge: 30
MCs in externer SWF als Button benutzen

Moin,

ich habe eine externe SWF mit mehreren MCs drin die ich als Buttons benutzen möchte.
Das laden und addChild funktioniert auch alles. Nur wenn ich mit
PHP-Code:
AllSWFs["hud_bottom"].btn1.addEventListener(MouseEvent.CLICKstart); 
versuche einen der Buttons klickbar zu machen dann bekomme ich folgene Meldung:

Code:
TypeError: Error #1010: Ein Begriff ist nicht definiert und hat keine Eigenschaften.
	at MAIN_fla::MainTimeline/frame1()
Könnt ihr mir sagen wie die MCs in einer externen SWF als Buttons nutzen kann?

mfg,
PrinzValium
Prinzvalium ist offline   Mit Zitat antworten
Alt 19-02-2011, 12:55   #2 (permalink)
Singleton
 
Registriert seit: Mar 2009
Ort: Berlin / Hamburg
Beiträge: 496
Kannst du etwas mehr Code "drumrum" posten?

Im Prinzip machst du alles richtig, aber offenbar findet der Compiler etwas nicht - falsch benannte Instanzen könnte eine Fehlerquelle sein.
__________________
digitale-avantgarde.com
shredding ist offline   Mit Zitat antworten
Alt 19-02-2011, 13:30   #3 (permalink)
Neuer User
 
Benutzerbild von Prinzvalium
 
Registriert seit: Jan 2011
Beiträge: 30
Also jetzt mache ich das so.
Ich erstelle einen leeren MovieClip.
PHP-Code:
var hud:MovieClip = new MovieClip() 
Und dann mache ich aus einer Funktion herraus addChild.
PHP-Code:
function loadFinish(e)
{
    
addChild(hud)
    
hud.addChild(AllSWFs["hud_bottom"]);

Jetzt kann ich auf die gesamte SWF einen EventListener setzten, was uach funktioniert.
PHP-Code:
hud.addEventListener(MouseEvent.CLICKtest); 
Aber wenn ich jetzt einen EventListener auf einen der Buttons setzten will.
PHP-Code:
hud.btn1.addEventListener(MouseEvent.CLICKtest); 
Bekomme ich:
Code:
TypeError: Error #1010: Ein Begriff ist nicht definiert und hat keine Eigenschaften.
	at MAIN_fla::MainTimeline/frame1()
Ich habe mal die fla mit den Buttons dran gehängt.

Ich hoffe es ist alles verständlich..

mfg,
PrinzValium
Angehängte Dateien
Dateityp: fla hud_bottom.fla (21,7 KB, 1x aufgerufen)
Prinzvalium ist offline   Mit Zitat antworten
Alt 19-02-2011, 13:31   #4 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Externe SWFs müssen ja erstmal nachgeladen werden. Man kann deshalb unmöglich direkt in Frame1 der Hauptzeitleiste darauf zugreifen (und genau dort scheint Dein Script zustehen)!

Du hast garantiert einen Listener auf Event.COMPLETE oder Event.INIT registriert, der die nachgeladen SWFs in das Objekt AllSWFs schreibt?! Alle Zugriffe dürfen deshalb erst erfolgen nachdem diese Funktion ausgeführt wurde. D.h. sie müssen mittelbar oder unmittelbar aus der Listener-Funktion heraus aufgerufen werden.
__________________
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 (19-02-2011 um 13:33 Uhr)
Martin Kraft ist offline   Mit Zitat antworten
Alt 19-02-2011, 13:40   #5 (permalink)
Neuer User
 
Benutzerbild von Prinzvalium
 
Registriert seit: Jan 2011
Beiträge: 30
Zitat:
Zitat von Martin Kraft Beitrag anzeigen
Externe SWFs müssen ja erstmal nachgeladen werden. Man kann deshalb unmöglich direkt in Frame1 der Hauptzeitleiste darauf zugreifen (und genau dort scheint Dein Script zustehen)!

Du hast garantiert einen Listener auf Event.COMPLETE oder Event.INIT registriert, der die nachgeladen SWFs in das Objekt AllSWFs schreibt?! Alle Zugriffe dürfen deshalb erst erfolgen nachdem diese Funktion ausgeführt wurde. D.h. sie müssen mittelbar oder unmittelbar aus der Listener-Funktion heraus aufgerufen werden.
Falsch. Die listener werden erst registriert wenn alles geladen wurde.
Wann das nicht so wäre würde ja auch
Code:
hud.addEventListener(MouseEvent.CLICK, test);
nicht funktionieren. Aber das tut es, nur
Code:
hud.btn1.addEventListener(MouseEvent.CLICK, test);
funktioniert nicht.
Prinzvalium ist offline   Mit Zitat antworten
Alt 19-02-2011, 13:55   #6 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Zitat:
Zitat von Prinzvalium Beitrag anzeigen
Falsch. Die listener werden erst registriert wenn alles geladen wurde.
Dann machen Event.COMPLETE oder Event.INIT aber wenig Sinn und einen dieser beiden Listener brauchst Du definitiv!

Zitat:
Zitat von Prinzvalium Beitrag anzeigen
Wann das nicht so wäre würde ja auch
Code:
hud.addEventListener(MouseEvent.CLICK, test);
nicht funktionieren. Aber das tut es, ...
Klar funktioniert das - Du erzeugst hud ja vorher (wozu eigentlich?):
Zitat:
Zitat von Prinzvalium Beitrag anzeigen
Ich erstelle einen leeren MovieClip.
PHP-Code:
PHP-Code:
var hud:MovieClip = new MovieClip() 
Zitat:
Zitat von Prinzvalium Beitrag anzeigen
nur
Code:
hud.btn1.addEventListener(MouseEvent.CLICK, test);
funktioniert nicht.
Das hier kann aber nicht funktionieren, weil Du nirgendwo eine Eigenschaft namens btn1 innerhalb von hud anlegst!

Außerdem müsste dieses Script wie gesagt mittelbar oder unmittelbar aus loadFinish herausaufgerufen werden. Das wird es aber z.Z. nicht!

Was ist überhaupt in AllSWFs["hud_bottom"]? Der loader oder der loader.content?
__________________
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 19-02-2011, 14:31   #7 (permalink)
Neuer User
 
Benutzerbild von Prinzvalium
 
Registriert seit: Jan 2011
Beiträge: 30
Problem gefunden. Ich dachte das er im Code erst weiter macht wenn die Funktionen zum laden durch sind.(Loader Funktion steht in einer extra Datei)
Dem ist aber nicht so. Also wird der Listener registriert obwohl noch nichts da ist auf der er registrieren kann. Also hatte Martin Kraft an dieser stelle Recht.

Vielen Dank an dieser Stelle für die Hilfe :]

mfg,
PrinzValium
Prinzvalium 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
Instanzname (Button-Name) dynamisch benutzen force73 ActionScript 3 4 07-07-2008 12:21
Button im Ray Casting benutzen gmnc Flash MX 2004 5 26-06-2005 19:55
Dynamischen Text in Button benutzen?! eXot Flash MX 2 10-11-2003 16:50
Schriften als Link bzw. Button benutzen? spacemedia Autorensysteme 3 03-09-2003 13:34
Button benutzen in eingebettetem MC Hasch2o Flash MX 19 02-08-2003 18:02


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:58 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele