Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 15-12-2006, 14:09   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 111
_level0 Problem beim laden in anderes .swf

Hi,
ich habe gerade eine wunderschöne Flashseite für eine Malerin gebastelt, auf der dynamisch die Werke in einen container geladen werden, rechts gibt es eine Thumbnailleiste, die sich auch automatisch aus einem best. Ordner füllt usw.

Da die gesamte Homepage aber aus mehr als nur diesem Portfolio bestehen soll, wollte ich jetzt eine art "Home"-Seite erstellen, auf der nur die Navigationsleiste und ein leerer Container sind. Idee: in diesen Container werden die einzelnen Seitenelemente (Portfolio.swf, Vita.swf etc.) geladen.

Wenn ich eine simplen viereckigen test.swf reinlade, funktioniert das auch, doch bei portfolio.swf meckert flash:

"Fehler: Eine 'with'-Aktion schlug fehl, da das angegebene Objekt nicht vorhanden ist."


Ich denke, das liegt daran, dass ich die unterste ebene in der Portfolio _level0 genannt habe, und darauf alle mcs und container geladen werden. _level0 liegt aber jetzt in der home.swf und die objekte können dort natürlich nicht mehr gefunden werden.

Was ist das beste Vorgehen in so einem Fall, wo externe, dynamische .swf Dateien in eine zentrale Containerdatei geladen werden?

Wäre froh über ein paar Ratschläge :-)
__________________
O Genie der Herr ehre dein Ego
Beezle-Bug ist offline   Mit Zitat antworten
Alt 15-12-2006, 14:15   #2 (permalink)
Trennschleifer
 
Benutzerbild von bobo_k1
 
Registriert seit: Apr 2004
Ort: Hamburg
Beiträge: 1.282
am besten nie mit this arbeiten, wenn du irgendwas wo reinlädst. ich mach das immer so

PHP-Code:

var tL:MovieClip this;

trace(tL); 
dann eben anstatt von this immer tL verwenden
__________________
Es gibt nur zwei Arten von Menschen die Hawaiihemden tragen: Schwuchteln und dicke fette Partylöwen. Und du siehst nicht aus wie ein dicker fetter Partylöwe!" - Homer J. Simpson
bobo_k1 ist offline   Mit Zitat antworten
Alt 15-12-2006, 14:37   #3 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 111
hmmm, nicht so ganz zufriedenstellend.
ich hab jetzt einfach mal alle "this" durch tL ersetzt und
HTML-Code:
var tL:MovieClip = this;
vorne an gestellt. Das zerschießt mir die ganze seite. Also schon bevor ich den swf dann irgendwo hinlade. Wenn ich die this ersetzte ist alles hin.

Könnte daran liegen, dass sich this nicht immer auf _level0 bezieht, sondern halt auf "this", wo auch immer der angesprochene mc gerade liegt.

Wie machen das denn die ganzen profis? Es heißt doch immer, man solle die verschiedenen bereiche einer seite einzeln erstellen und dann per loadMovie rein bzw rausladen...

Ich hab auch mal alle _level0 durch _level1 ersetzt, aber das bringt nix.
__________________
O Genie der Herr ehre dein Ego
Beezle-Bug ist offline   Mit Zitat antworten
Alt 15-12-2006, 15:07   #4 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
du schreibst in die hauptzeitleiste deiner fla's z.B. "Portfolio" folgendes:
PHP-Code:
_global.portfolio this
überall in dieser fla wo du zuvor "_root" oder "level0" stehen hattest schreibst du jetzt "portfolio"

wenn du die swf jetzt in eine andere fla lädtst passt das auch mit _level0
__________________
[mooseMash]
mooseMash ist offline   Mit Zitat antworten
Alt 15-12-2006, 16:24   #5 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 111
das geht wie gesagt leider nicht, da sich "this" nicht immer auf den _level0 bezieht, sondern manchmal auch auf das zuvor angesprochene Objekt, das sonstwo liegen kann.

Die komplette Seite ist in AS aufgebaut, die Bühne ist quasi weiß, dafür hab ich 10 seiten Code bis _level5000. Das ist auch der Grund, warum ich jetzt nicht bei jedem this schauen kann, worauf es sich genau bezieht :-/

Hätt ich mir vielleicht vorher überlegen sollen, aber selbst dann wüßte ich gerade nicht, wie ich die Beziehungen in den einzelnen swf's machen sollte, damit sie sich gegenseitig nicht in die quere kommen. Ich bin nämlich gerade dabei, die anderen Teile der Homepage zu kreiieren...

Soll ich _root und _level0 komplett vermeiden? aber wie kann ich dann noch vernfünftig container und mcs platzieren?
__________________
O Genie der Herr ehre dein Ego
Beezle-Bug ist offline   Mit Zitat antworten
Alt 15-12-2006, 16:26   #6 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 111
mir fällt gerade noch ein, ich habe mal was von prototypen gelesen... kann mich das hier irgendwie weiterbringen?
__________________
O Genie der Herr ehre dein Ego
Beezle-Bug ist offline   Mit Zitat antworten
Alt 16-12-2006, 06:17   #7 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
Zitat:
das geht wie gesagt leider nicht, da sich "this" nicht immer auf den _level0 bezieht, sondern manchmal auch auf das zuvor angesprochene Objekt, das sonstwo liegen kann.
HÄH?
wer sagt denn das sich this immer auf _level0 beziehen muss, wenn du in der hauptzeitleiste schreibst:
PHP-Code:
_global.portfolio this
dann ändert sich an der verwendung von this rein gar nichts, das einzige was sich ändert ist du kannst anstatt
_level.blablabla... bzw._root.blablabla... jetzt immer schreiben portfolio.blablabla...

der große vorteil daran ist wenn du deine portfolio.swf in eine andere flash datei einbindest, nennen wir sie 'myFlash', stimmem die pfade nach wie vor, portfolio.blablabla bezieht sich dann immer noch auf_level0 in portfolio und nicht auf level0 in myFlash. das ist es doch was du willst, oder?
__________________
[mooseMash]
mooseMash ist offline   Mit Zitat antworten
Alt 17-12-2006, 14:48   #8 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 111
Thumbs up scheint zu klappen

oh, goody! :-)

hab gerade einen test gemacht, es scheint zu klappen. Wenn ich wieder mehr Zeit habe, werd ich mal die große fla umstrukturieren.

Vielen Dank, hab mal wieder was dazugelernt (nachdem ich zuvor gelernt hatte, dass man ganz viel mit this machen solle :-/ )

bis dann!
__________________
O Genie der Herr ehre dein Ego
Beezle-Bug ist offline   Mit Zitat antworten
Alt 18-12-2006, 13:16   #9 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 111
Smile

Wollte nur noch mal bestätigen, dass alles gut läuft. Hab jetzt jede _level0, this und _root variable einzeln angeschaut und ausgetauscht wenn nötig, aber die Arbeit hat sich gelohnt.

Für Nachahmer sei gesagt, dass, wenn man mit MovieClip.prototype.meinefunktion123 arbeitet, das "this" stehen bleiben muss, da die Funktion sich ja nicht immer auf die Hauptebene bezieht. Da macht es auch nichts aus und funktioniert auch, wenn man später den gesamten film in eine andere swf datei reinlädt.

Mich würde noch interessieren, was diese Schreibweise genau aussagt (hab ich noch nie gesehen):

Zitat:
var tL:MovieClip = this;

trace(tL);
ist das auch so etwas wie _global.tL ? (tL ist beliebig gewählt, nehme ich an, oder?)


Ansonsten nochmal vielen Dank für die kompetente Hilfe!
__________________
O Genie der Herr ehre dein Ego
Beezle-Bug 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 01:16 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele