Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-08-2005, 11:03   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2003
Beiträge: 158
Variablen auf Level laden

Hallo,
hab grad einen Durchhänger. Ich lade auf Button-Release eine Variable auf den Level 33 und lad einen Clip auf 40:
ActionScript:
  1. on (release)
  2. {
  3.     _level33.image="test.jpg";
  4.     loadMovieNum("angebote/content.swf",40);
  5. }

In dem content.swf bräuchte ich dann diese Variable wieder:
ActionScript:
  1. image=_level33.image;

Das Problem ist, die ist immer leer. Was muß ich da beachten?
Irgendwelche Ideen?

Gruß
Michael
Lengen1971 ist offline   Mit Zitat antworten
Alt 02-08-2005, 22:13   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zuerst einmal solltest du das mit mehreren Leveln gleich wieder vergessen. Der Level 0, also die Hauptzeitleiste, hat über eine Million Tiefen, die für die meisten Anwendungen ausreichen werden. Diese Tiefen kannst du dann auch nutzen, um deine Objekte in verschiedenen Ebenen zu platzieren.

MCs werden auf Tiefen entweder mit den Scriptbefehlen createEmptyMovieClip oder attachMovie gelegt. Mit swapDepths kannst du die MCs beliebig "hoch" und "runter" schieben.

Den loadMovieNum kannst du also auch gleich wieder vergessen, ein einfacher loadMovie in einen leeren MC reicht allemal:
ActionScript:
  1. this.createEmptyMovieClip("con",1);//leeren MC auf Level 0 in Tiefe 1 erstellen
  2. this.con.loadMovie("angebote/content.swf");//und in diesen leeren MC einen Film nachladen
  3. image = "test.jpg";
  4. trace("image="+image);//im Testmodus ausgeben lassen
  5. //oder
  6. trace("_level0.image="+_level0.image);
Du kannst aber erst auf den MC zugreifen, nachdem der Film vollständig geladen ist. Dazu solltest du einen Preloader einsetzen, der das Nachladen überprüft (siehe die Tausende von Threads unter "Suchen").

Wenn du im nachgeladenen Film Variablen der Hauptzeitleiste einlesen willst, solltest du das auf einem onEnterFrame-Event machen, damit du sicher sein kannst, dass die Variable "gefunden" wird, bspw.:
ActionScript:
  1. //Zeitleiste des content.swf:
  2. this.onEnterFrame = function(){//kontinuierlich checken
  3.    if(_level0.image != undefined){
  4.       delete this.onEnterFrame;//event löschen, wenn nicht benötigt
  5.       var neueVariable = _level0.image;
  6.    }
  7. }

Geändert von agedoubleju (02-08-2005 um 22:19 Uhr)
  Mit Zitat antworten
Alt 03-08-2005, 16:36   #3 (permalink)
Neuer User
 
Registriert seit: Mar 2003
Beiträge: 158
Hallo,

vielen Dank für die ausführliche Antwort. Hat mir zumindest neue Erkenntnisse gebracht bezüglich Levels (ich muss hier in der Agentur mit levels arbeiten).

Der Fehler war, dass auf dem Level gar kein Movieclip lag. Dann kann er auch keine Variablen entgegen nehmen

Gruß
Michael
Lengen1971 ist offline   Mit Zitat antworten
Alt 03-08-2005, 17:02   #4 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
ich muss hier in der Agentur mit levels arbeiten
Dann solltest du mal die Kollegen über diesen Unsinn aufklären...
  Mit Zitat antworten
Alt 04-08-2005, 02:38   #5 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
"..über diesen Unsinn aufklären.."
naja ;-)))

im gegensatz zu szenen funktionieren levels ohne probleme. deshalb besteht kein grund diese so generell abzulehnen.

jedes level hat sein eigenes _root. was so nicht gegeben ist, wenn ich das swf in ein mc reinlade. sich auf _root beziehen zu können ist angenehmer, als relative pfade erstellen zu müssen wie z.b. this._parent._parent._parent

und _lockroot gilt erst ab flash7
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 04-08-2005, 09:19   #6 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
@hgseib: Programmierung mit Leveln führt aus eigener schmerzlicher Erfahrung nur zur Unübersichtlichkeit, besonders wenn man noch kein tiefergehendes Basiswissen von Flash hat oder das Projekt umfangreicher wird...

Dass die Programmierung mit Leveln grundsätzlich funktioniert würde ich auch nicht bestreiten. Warum aber nicht die Tiefen von Level 0 nutzen? Dadurch kann ich wenigstens eine übersichtliche Tiefenreihenfolge meiner MCs erstellen und mit einer Referenzpfadvariablen arbeiten.
  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 09:30 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele