Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 20-08-2003, 07:26   #1 (permalink)
Aushilfs-Flash-User
 
Benutzerbild von dj2k
 
Registriert seit: Aug 2003
Beiträge: 134
Beim Verlassen ausführen...

Ich habe ein swf, das extern geladen wird.

Damit man es gut sehen kann (keine Überlagerungen) , verstecke ich ein anderes level mit:

_level2._visible=0;

(der code liegt auf der root Ebene)

Wie kann ich es erreichen,
dass beim Verlassen des swf´s
_level2._visible=1;
ausgeführt wird?
irgendwas mit unload?


Dj2K
__________________
==- www.hofaah.de -==
Die Schüler-Studenten-Community und für alle Ehemaligen!
dj2k ist offline   Mit Zitat antworten
Alt 20-08-2003, 10:04   #2 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
HI,

das kommt darauf an, was du mit "Verlassen des swf" meinst. Schließt du es irgendwie per Button, oder willst du, dass _level2 beim Rausrollen der Maus wieder sichtbar wird?

Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 20-08-2003, 10:17   #3 (permalink)
Aushilfs-Flash-User
 
Benutzerbild von dj2k
 
Registriert seit: Aug 2003
Beiträge: 134
Hallo!

Danke für Deine Antwort!
(Das Problem macht mich noch wahnsinnig)...

Also das externe swf wird nicht per Button oder so geschlossen...
Man kann sich das Ganze so vorstellen:

Ich habe einen großen Rahmen => Haupt-Swf
dahinein werden kleinere externe swf hineingeladen!

Die Buttons (zum laden der externen swf) befinden sich im Haupt-swf.
Ich möchte nun nicht jedem Button ein "_level2._visible=1;" zuweisen... das wäre nämlich einen Haufen arbeit.

Die Idee war deshalb, ob ich dem swf nicht irgendwie sagen kann,
dass wenn es nicht mehr sichtbar/verlassen wird, den befehl ausführt...

Sprich :

Wenn das swf aufgeht => _level2._visible=0; (geht ja bereits)
Wenn das swf zugeht => _level2._visible=1;

und das ganze im externen swf und nicht in dem button, in dem es aufgerufen wird.

Ich hoffe, es ist halbwegs klar geworden...

Dj2K
__________________
==- www.hofaah.de -==
Die Schüler-Studenten-Community und für alle Ehemaligen!

Geändert von dj2k (20-08-2003 um 10:19 Uhr)
dj2k ist offline   Mit Zitat antworten
Alt 20-08-2003, 10:22   #4 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
es gibt für unload bzw remove usw.. einen event handler der eben ausgeführt wird wenn ein mc bzw level wieder entfernt wird
movieclip.onUnload
jedoch für visible = true/false nicht...
es sei den du schreibst dir eine eigene Überwachung......
jedoch wenn es noch das selbe Problem von gestern ist mit über 70 levels... kannst das auch vergessen... da die Rechenlast zu groß wird denke ich mal...

du könntest es dann nur noch manuell dem code beifügen der eben das visible steuert....
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)
Scrawer ist offline   Mit Zitat antworten
Alt 20-08-2003, 10:28   #5 (permalink)
Aushilfs-Flash-User
 
Benutzerbild von dj2k
 
Registriert seit: Aug 2003
Beiträge: 134
Zitat:
Geschrieben von Scrawer
es gibt für unload bzw remove usw.. einen event handler der eben ausgeführt wird wenn ein mc bzw level wieder entfernt wird
movieclip.onUnload
Danke für die Antwort!

Jepp, das gleiche wie gestern...
Mmh, dann geht das also mit visible nicht Schade aber auch...

Nunja, vielleicht hilfts mir mit unload!

Wenn du mir das noch etwas näher beschreiben könntest


Dj2K
__________________
==- www.hofaah.de -==
Die Schüler-Studenten-Community und für alle Ehemaligen!
dj2k ist offline   Mit Zitat antworten
Alt 20-08-2003, 10:44   #6 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
also ich musste gerade feststellen das onUnload nur mit movieclip unloadMovie läuft nicht mit levels.....

in deinem fall wäre es nun evtl das einfachste... (jedoch nicht das sauberste)

einfach abzufangen gibt es einen klick...
sprich du machst einen global mouseDown eventHandler und dann eine for schleife die alle levels durchgeht und prüft ob diese noch visible sind oder nicht......
so kannst das level raus finden welches nun der button angesprochen hat....

und es geht nicht auf die rechen leistung...
da die prüfung nur bei einem klick aufgerufen wird... und nicht ständig läuft
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)
Scrawer ist offline   Mit Zitat antworten
Alt 20-08-2003, 10:57   #7 (permalink)
Aushilfs-Flash-User
 
Benutzerbild von dj2k
 
Registriert seit: Aug 2003
Beiträge: 134
Ok,
also vom Prinzip her hab ichs verstanden - aber ob ich das AS technisch hinbekomm


Dj2K
__________________
==- www.hofaah.de -==
Die Schüler-Studenten-Community und für alle Ehemaligen!
dj2k ist offline   Mit Zitat antworten
Alt 20-08-2003, 11:30   #8 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
wenn du mir noch ganz kurz sagst....

wie das abläuft kann ich dir den code schnell runter tippen....

ich hab das ganze so verstanden....

in deinem film werden über 70 filme auf levels geladen.... level 1 bis 70.... so zu sagen....

was ich noch nicht verstehe ist gibt es nun 70 buttons? wo jeder sein level visible true/flase setzt?
kannst du kurz den aktions fluss ausführen... wer was wann wo wie steuert
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)
Scrawer ist offline   Mit Zitat antworten
Alt 20-08-2003, 11:32   #9 (permalink)
Aushilfs-Flash-User
 
Benutzerbild von dj2k
 
Registriert seit: Aug 2003
Beiträge: 134
Zitat:
Geschrieben von Scrawer
ich hab das ganze so verstanden....

in deinem film werden über 70 filme auf levels geladen.... level 1 bis 70.... so zu sagen....

was ich noch nicht verstehe ist gibt es nun 70 buttons? wo jeder sein level visible true/flase setzt?
Jepp, es gibt soviele Buttons (aber verschachtelter Art, mit Untermenüs)...

und die setzen jeweils das eigene Level 1 oder 0!
und rufen das swf auf mit loadmovie!

Dj2K
__________________
==- www.hofaah.de -==
Die Schüler-Studenten-Community und für alle Ehemaligen!
dj2k ist offline   Mit Zitat antworten
Alt 20-08-2003, 11:33   #10 (permalink)
Achim Math.PI
 
Benutzerbild von bloba
 
Registriert seit: Jul 2001
Ort: cool Colonia
Beiträge: 11.642
dj2k
ich würde die swf s in leere mc laden und sie je nach bedarf auf visible 0 oder 1 stellen
__________________
gruß bloba

2 x onkel² b_d
bloba ist offline   Mit Zitat antworten
Alt 20-08-2003, 11:53   #11 (permalink)
Aushilfs-Flash-User
 
Benutzerbild von dj2k
 
Registriert seit: Aug 2003
Beiträge: 134
@ bloba :
Gute Idee eigentlich -
Das würde ich gerne, aber dann brauch ich ja haufenweise Mcs bzw. müsste eine Menge ändern...

:/

Dj2k
__________________
==- www.hofaah.de -==
Die Schüler-Studenten-Community und für alle Ehemaligen!
dj2k ist offline   Mit Zitat antworten
Alt 20-08-2003, 11:55   #12 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
aso.... die levels steuern sich letztendlich alle selber..... visible true/false.....
ActionScript:
  1. _global.arrLevels = [null];
  2.  
  3. for (var i=1; i<=70; i++)  //<---- 70 ist die anzahl der levels!!! musst du einstellen in dem falle wird level 1 bis 70 durchlaufen
  4. {
  5.     arrLevels[i] = true;
  6. }
  7.  
  8. lsMU = new Object();
  9. lsMU.onMouseUp = function ()
  10. {
  11.     for (var i=1; i<=arrLevels.length; i++)
  12.     {
  13.         if (!eval("_level"+i)._visible && arrLevels[i])
  14.         {
  15.             trace("level "+i+" wurde auf visible false gesetzt")
  16.             // hier deine aktion
  17.            
  18.             arrLevels[i] = false;
  19.             break; // die schleife hier abbrechen
  20.         }
  21.     }
  22. };
  23. Mouse.addListener(lsMU);
der code muss in den hauptfilm...

das ganze ist nun so ausgelegt... das die schleife immer alle levels bei einem klick durchgeht und schaut ob eines visible false ist...
und dann die schleife abbricht... er merkt sich dann natürlich welche nun schon alle false sind...
damit beim nächsten durchlauf nicht wieder beim selben gestoppt wird.....

zu sagen ist noch das die schleife bei onRelease gestartet wird...
solltest deine aktion visible = false nicht bei on Press ausgelöst werden sondern auch bei onRelease...
ist es evtl nötig das wir die schleife um 100 ms oder so verzögern...
aber das siehst dann eh gleich....
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)
Scrawer ist offline   Mit Zitat antworten
Alt 20-08-2003, 12:01   #13 (permalink)
Aushilfs-Flash-User
 
Benutzerbild von dj2k
 
Registriert seit: Aug 2003
Beiträge: 134
Vielen Besten Dank!

Da ist jemand potentieller Anwärter auf den Status: "Mein Held des Tages"

Ich bau´s ein und meld mich später nochmals zwecks Feedback!

Dj2K
__________________
==- www.hofaah.de -==
Die Schüler-Studenten-Community und für alle Ehemaligen!
dj2k ist offline   Mit Zitat antworten
Alt 20-08-2003, 14:12   #14 (permalink)
Aushilfs-Flash-User
 
Benutzerbild von dj2k
 
Registriert seit: Aug 2003
Beiträge: 134
Nunja

Ich hab das Ganze mal eingebaut!
Es funktioniert auch, nur das Problem ist dabei, dass die levels n nicht die Ebenen konsequent geführt wurden...
also weder 1-70... noch heißen die Ebenen immer gleich!
So wird aus 70 mal wieder 13 und so weiter *kotz*

Ich hab mir jetzt damit beholfen, eine Mausüberwachung zu programmieren, für die jeweiligen Buttons...

Sprich, wenn die Maus auf den Bereich x1/y1 -> x2/x2 clickt dann mach visible=0

schaut dann ungefähr so aus:

ActionScript:
  1. onClipEvent (load)
  2.        {
  3.         bereich1 = [25, 50, 600, 491];
  4.        }
  5. onClipEvent (mouseDown)
  6.        {
  7.     _root.anzeige.text = _level2_._ymouse
  8.         xM = _level2._xmouse;
  9.         yM = _level2._ymouse;
  10.         if (xM>bereich1[0] && yM>bereich1[1] && xM<bereich1[2] && yM<bereich1[3]) {
  11.     _level2._visible=1;
  12.     }
  13. }

Ich hab mir nen kleines dynamisches Textfenster gebaut, in dem die Mauskoordinaten angezeigt werden.
Dadurch konnte ich sie dann auslesen und die Bereiche definieren!

War zwar auch eine Menge Arbeit, geht dafür aber auch, egal, was passiert!

Dj2k
__________________
==- www.hofaah.de -==
Die Schüler-Studenten-Community und für alle Ehemaligen!

Geändert von dj2k (20-08-2003 um 14:14 Uhr)
dj2k 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 17:45 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele