Zurück   Flashforum > Flash > Zusatzprodukte

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 13-08-2008, 16:34   #1 (permalink)
Neuer Rossi
 
Benutzerbild von rossi123
 
Registriert seit: Feb 2004
Ort: Wien
Beiträge: 65
fdt + fla (swc-export) geht nicht

hi,

ich habe hier ein recht assetinsensives projekt, wo ich in einer fla in der bibliothek alle meine movieclip/sprite/simplebutton-objekte habe. zu vielen dieser objekte existiert nun je eine klasse, die für das verhalten zuständig ist und ich händisch code.

nun wollte ich es mit fdt probieren und habe beim compilieren in der flash-ide "export als swc" angeklickt und dachte, nun müsste doch funktionieren(nach dem konfigurieren in fdt [project properties>FDT Source Folder>Add Linked Library]).

Leider bekomme ich jedoch für jede Instanz, die ich einfach verwende, weil sie bereits auf der Bühne liegt, einen Error "Variable 'abc' is not declared. Found at line...".

Wie kann ich das lösen?
rossi123 ist offline   Mit Zitat antworten
Alt 14-08-2008, 07:25   #2 (permalink)
flashforum
 
Benutzerbild von marc
 
Registriert seit: Jun 2001
Ort: krefeld
Beiträge: 13.866
Wie immer rufen wir doch einfach einmal laut nach den Köpfen hinter dem Produkt: CARLO bitte kommen!

__________________
Wo sonst? TwitterFlickrXINGFacebook

beyond tellerrand

[ Wo findet ihr mich noch: twitterdribbblezootoolgoogle+facebookmarc.thielespoiler.web ]
marc ist offline   Mit Zitat antworten
Alt 14-08-2008, 07:43   #3 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Marc: Ist wohl eher ein Programmier Problem, weniger eins von FDT

AS3 ist generell relativ strikt, FDT sowieso. Also wenn du auf eine Eigenschaft
zugreifen möchtest, die nicht deklariert ist, gibt es Probleme.

Wenn ich dein Problem richtig verstehe, musst du die einfach in deiner
Dokumentenklasse deklarieren. Instanziert werden sie dann automatisch.

Ansonsten kommt in solchen Fällen auch oft getChildByName zum Einsatz,
was man aber im Idealfall nie benötigt.

gruß

Geändert von sebastian (14-08-2008 um 07:46 Uhr)
sebastian ist offline   Mit Zitat antworten
Alt 14-08-2008, 08:09   #4 (permalink)
Powerflasher
 
Registriert seit: Jul 2001
Ort: Aachen
Beiträge: 146
bin ja schon da ich sehe es aber genauso wie Sebastian. Warten wir mal Rossis Antwort ab.

ciao Carlo
__________________
Powerflasher GmbH
[URL=www.powerflasher.de http://www.powerflasher.de[/URL]

FDT 5 - The flexible development tool for interactive developers:
http://fdt.powerflasher.com
Calle ist offline   Mit Zitat antworten
Alt 14-08-2008, 14:45   #5 (permalink)
Neuer Rossi
 
Benutzerbild von rossi123
 
Registriert seit: Feb 2004
Ort: Wien
Beiträge: 65
hey danke für alle eure antworten.

beim exportieren habe ich "bühneninstanzen automatisch deklarieren" angehakt, da dachte ich mir, im swc müsste das auch vorkommen?

es ist für mich wichtig, an welcher position die library-objekte auf der bühne instanziert werden. d.h. wenn ich euch richtig verstanden habe, muss ich, anstatt die objekte auf die bühne zu ziehen, quasi zu fuß in der hauptdokumentklasse instanzieren und dann die koordinaten festlegen. (und äquivalent dann für alle objekte, die wiederum aus platzierten objekten bestehen)

d.h. workflow:
objekte in der library erstellen, auf die bühne ziehen und richtig platzieren, koordinaten merken und nachher zu fuß in der zugehörigen klasse die eigentliche instanzierung durchführen?

oder habe ich das falsch verstanden?

danke für eure mühen+geduld bei den antworten :-)

LG, rossi
rossi123 ist offline   Mit Zitat antworten
Alt 14-08-2008, 15:08   #6 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Du kannst die Objekte schon auf der Bühne lassen.

Aber es ist im Endeffekt so: Du greifst wohl in deiner Klasse auf Eigenschaften
(in diesem Fall auf der Bühne platzierte Instanzen) zu, die es zwar gibt,
aber nicht deklariert sind in der Klasse.

Das wird zwar sogar mit Flash kompiliert und funktioniert auch, aber
das dürfte es strengenommen nicht. Nennen wir es mal Anfänger Feature

Wenn du also z.B. einen MovieClip "clip" auf der Bühne hast, muss in deine
Hauptklasse

ActionScript:
  1. private var clip : MovieClip;

rein. Anschließend ist wieder alles schön strikt und typsicher.

Der andere Weg wäre folgendes zu verwenden:
ActionScript:
  1. getChildByName("clip")
Hier hast du aber wieder das Problem, dass du hier frühstens zur Runtime
Fehler bekommst und es dadurch sehr fehleranfällig ist.

gruß

Geändert von sebastian (14-08-2008 um 15:11 Uhr)
sebastian ist offline   Mit Zitat antworten
Alt 14-08-2008, 15:39   #7 (permalink)
Neuer Rossi
 
Benutzerbild von rossi123
 
Registriert seit: Feb 2004
Ort: Wien
Beiträge: 65
hm. danke erneut für diese Erklärung! So funktioniert's (obwohl ich jetzt zig Klassen nachziehen muss , aber damit kann ich gut leben)

was ich aber nicht verstehe: genau dafür, dass ich NICHT jede Bühneninstanz selbst nochmals deklarieren muss, hake ich das "Bühneninstanzen automatisch deklarieren" an und exportiere das SWC. Wenn es dieses Feature gibt, warum kann ich das mit FDT nicht nutzen?

LG, rossi
rossi123 ist offline   Mit Zitat antworten
Alt 14-08-2008, 15:52   #8 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Die werden nur in automatisch erzeugten Klassen deklariert, wenn du aber
bei den Verknüpfungseinstellungen eine eigene Klasse eingibst, musst du
das da natürlich selbst machen.

Ein gutes Vorgehen ist übrigens, wenn du die Assets nicht direkt mit Klassen
(und Logik) verknüpfst, sondern wirklich nur das Asset an sich. Das kannst
du dann in deiner eigentlich Klasse per Komposition nutzen.

Z.b. hast du dann ein ButtonAsset aus der Bibliothek und legst dann eine
Klasse Button an. Darin instanzierst du einfach das ButtonAsset und schon
bist du alle Probleme los.
sebastian ist offline   Mit Zitat antworten
Alt 14-08-2008, 17:09   #9 (permalink)
Neuer Rossi
 
Benutzerbild von rossi123
 
Registriert seit: Feb 2004
Ort: Wien
Beiträge: 65
verstehe.

bzgl deines vorschlags für eine elegante vorgehensweise: dabei habe ich aber wieder den "aufwand", mir die positionen für die instanzierung zu merken, oder? d.h. wenn ich auf der bühne 40 objekte habe, die alle ihren platz haben, muss ich für jedes der 40 Objekte die Position rausschreiben und vor dem addChild() entsprechend positionieren. oder wie würdest Du das lösen?
rossi123 ist offline   Mit Zitat antworten
Alt 15-08-2008, 11:26   #10 (permalink)
Neuer Rossi
 
Benutzerbild von rossi123
 
Registriert seit: Feb 2004
Ort: Wien
Beiträge: 65
Durch Zufall bin ich auf einen Blog gestossen, der heute dieses Thema behandelt. Wenn also wer nach diesem Thema sucht, hier ist eine nette Aufarbeitung:

http://www.communitymx.com/content/a....cfm?cid=60D13

Dennoch fände ich es interessant, wie ihr die Probleme mit der Positionierung löst.
rossi123 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



Alle Zeitangaben in WEZ +1. Es ist jetzt 20:09 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele