Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-01-2012, 12:22   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2008
Beiträge: 12
Probleme mit shared Library und Basisklassen

Hi!
Ich bin mit meinem Latein am Ende und habe das Gefühl, dass Flash hier eventuell auch nicht korrekt funktioniert. Wir haben hier eine e-Learning Anwendung. Ich möchte mittels einer allgemeinen Buttonklasse (von uns erstellt) einen konkreten Button in vielen Inhaltsseiten benutzen, am besten via shared library oder so. Mal kurz das Szenario:

Es gibt eine shared.swf, in der befindet sich ein exportierter Button namens MyButton. Dieser hat eine Klasse (MyButton.as) die wiederum von einer eigens erstellten allgemeinen CustomButton-Klasse erbt (die CustomButton-Klasse erbt dann von MovieClip).
In MyButton.as werden bestimmte MovieClips innerhalb von MyButton angesprochen und positioniert usw.


Wenn ich jetzt in einer weiteren SWF (content1.swf) MyButton von der shared.swf importiere und auf die Bühne packe, dann funktioniert das alles ohne Probleme.

Anders, wenn ich in einer SWF (content2.swf) MyButton nur in der Library liegen habe (aus der shared importiert wie bei content1) und MyButton dann per ActionScript platzieren will, dann schmeißt er Laufzeitfehler. Er findet in MyButton.as die MovieClips, die angesprochen werden, nicht mehr. Es kommt mir so vor als käme er durch das sharen in der Vererbungskette durcheinander oder so....

hat da jemand ne Idee?? Ich hoffe meine Beschreibung ist nicht zu verwirrend :-|

Danke und Grüße,

Carsten.
sinusforce ist offline   Mit Zitat antworten
Alt 26-01-2012, 15:32   #2 (permalink)
Klugscheisser
 
Registriert seit: Jun 2001
Ort: Düsseldorf
Beiträge: 1.354
Initialisierst Du ordentlich?

Code:
class MyButton extends CustomButton {

	private var element1:MovieClip;
	private var element2:MovieClip;

	function MyButton() {
		if (stage) handleAddedToStage();
		else addEventListener(Event.ADDED_TO_STAGE, handleAddedToStage);
	}

	private function handleAddedToStage(event:Event = null) :void
	{
		removeEventListener(Event.ADDED_TO_STAGE, handleAddedToStage);
		element1 = getChildByName("element1");
		element2 = getChildByName("element2");
		layout();
	}
	
	private function layout() :Void
	{
		element1.x = 10;
		element1.y = 10;

		element2.x = 10;
		element2.y = 50;
	}
}
Das ist notwendig, um sicher zu stellen, dass die Bühne und damit auch die Kindelemente zur Verfügung stehen (und gefunden werden).

Geändert von T.Decay (26-01-2012 um 15:34 Uhr)
T.Decay ist offline   Mit Zitat antworten
Alt 27-01-2012, 08:06   #3 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.141
Wenn du eine Klassendefinition verwenden willst, die noch geladen werden muss... führt das zu Fehlern...
Omega Psi ist offline   Mit Zitat antworten
Alt 27-01-2012, 11:28   #4 (permalink)
Neuer User
 
Registriert seit: Apr 2008
Beiträge: 12
Hi!

Danke für die Antworten. Es geht jetzt, irgendwie. Ich habe so einiges hin und herprobiert daher fällts mir jetz schwer im nachhinein zu sagen, was genau das Problem war. Ich versuchs trotzdem mal falls jemand ein ähnliches Problem hat:

Klar ist aber: Wenn man einen MovieClip (mit eigener Klasse) shared, dann müssen alle im MovieClip enthaltenen MovieClips die man später ansprechen möchte als public vars instanziert sein. Denke das war der Hauptfehler.

Weiterhin hatte ich ein wenig Probleme mit dem Pfad zur sharedLib, das kriegt man mit Probieren aber ganz gut hin.

Außerdem habe ich die sharedLib jetzt nach dem Appstart (läuft mit robotlegs das Ganze) in einem Command mit einem Loader geladen und den LoaderContext auf ApplicationDomain.currentDomain gesetzt.

Jetzt findet er zu jeder Zeit alle shared-Elemente quasi wie damals in AS2 *g*
sinusforce 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
Shared Library Export URL Karuma ActionScript 2 0 17-08-2006 13:13
Shared Library und AS2 santa horst Softwarearchitektur und Entwurfsmuster 2 09-08-2005 09:26
shared library nb05 ActionScript 1 0 11-08-2003 09:41
shared library GittiF Flash MX 0 18-09-2002 08:44
Shared Library smn007 Flash MX 3 28-08-2002 09:04


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:34 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele