Flashhilfe.de - Flash Community

durch tiefen klicken [Flash 9]

 


AntwortenRegistrieren Seite1  

indi#1
Benutzerbild von indi
Beiträge: 48
Registriert: Aug 2008

01.09.2009, 06:11

hallo,

ich attache mc's mit ansteigender tiefe,
die mc's haben einen variablen instanznamen,
der nicht ansteigend ist also das
erste mc kann sein attach04, das darüberliegende attach02 usw.
wie kann ich jetzt per buttons mich durch die mc's klicken ?

möchte zb. das das letzt erstellte mc ganz oben ist
und ich mit einem button das nächste darunter hervorhole
und per klick wieder das nächste darunter
und mit einem anderen button wieder nach oben klicken

bitte um hilfe!
danke
indi
Sleepingbeast#2
Benutzerbild von Sleepingbeast
Beiträge: 579
Wohnort: Halle
Registriert: Apr 2005

01.09.2009, 07:40

Hallo indi,

ich hoffe, dass ich dein Problem richtig verstanden habe und werf dir mal swapDepths() entgegen. Das sollte genau das machen, was du brauchst. D.h. es tauscht die "Ebenenposition" eines MovieClips. Ist eigentlich recht einfach und verständlich in der Programmhilfe beschrieben. Zur Not einfach noch mal "schreien" ;)


Patrick
_________________________________________________________
Um Rekursion wirklich zu verstehen, muss man zuerst Rekursion verstehen.
null != 'null' != 0 != '0'
indi#3
Benutzerbild von indi
Beiträge: 48
Registriert: Aug 2008

Themenautor/in

01.09.2009, 09:02

hallo,

dabei war ich auch schon,

btn.onRelease = function() {
this.swapDepths(mc);
};

doch ich hab kein mc sondern mc03 und mc06 usw.
also variabel ich hab bsp. 5mc's mit nterschiedlichen instanznamen
und diese liegen übereinander der oberste ist der der als letzter
attacht wurde jetzt hab ich einen btn auf dem zurück steht
und bei klick auf diesen eine ebene runter und und bei neuerlichen klick
wieder eine ebene runter usw.

ich hab einen btn mit vorwärts
bei klick eine ebene hoch usw.

hab keinen plan wie ich das angehn soll

mfg
indi
Sleepingbeast#4
Benutzerbild von Sleepingbeast
Beiträge: 579
Wohnort: Halle
Registriert: Apr 2005

01.09.2009, 10:36

So indi,

ich habs ;) In meiner Version brauchst du gar kein swapDepths() mehr. Ich hab einfach ein paar Array-Funktionen genutzt um die einzelnen "attachten" Elemente immer wieder neu zu sortieren.
Hier zunächst mal das Script mit ein paar Kommentaren:
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// In diesem Array stehen alle Bezeichnernamen der MovieClips der Bibliothek,
// die an der Sortierung teilhaben sollen. Die Reihenfolge im Array ist auch die
// Reihenfolge der Ausgabe (letztes Element = oberstes Element im Stapel).
var elemente_arr:Array = ["mc01", "mc02", "mc03", "mc04"];

// Diese Funktion "attacht" alle Elemente, die im Array elemente_arr stehen
// auf die Bühne und verschiebt sie ein bisschen um sie besser sichtbar zu machen
function attach() {
   for (var i:Number = 0; i < elemente_arr.length; i++) {
      this.attachMovie(elemente_arr[i],elemente_arr[i],i);
      this[elemente_arr[i]]._x = this[elemente_arr[i]]._width / 3 * i;
      this[elemente_arr[i]]._y = this[elemente_arr[i]]._height / 3 * i;
   }
}

// ruft die Funktion beim ersten Laden auf
attach();

// Anonyme Funktion, die beim Klick auf den "Zurück-Button" zunächst
// das letzte (also das oberste) Element des Array in eine temporäre Variable schreibt,
// dieses letzte Element dann aus dem Array löscht,
// dann das ehemals letzte Element an den Anfang des Array schreibt
// und dann wieder die Funktion attach aufruft um die Elemente neu sortiert anzuzeigen
back_mc.onPress = function() {
   var altesElement = elemente_arr[elemente_arr.length - 1];
   elemente_arr.pop();
   elemente_arr.unshift(altesElement);
   attach();
};


Damit du siehst wie ich es meine, habe ich die entsprechenden Dateien mal mit angehangen.



Patrick
_________________________________________________________
Um Rekursion wirklich zu verstehen, muss man zuerst Rekursion verstehen.
null != 'null' != 0 != '0'


Angehängte Dateien:
Adobe Flash Quelldatei reihenfolge_aendern.fla84.00 KB
Adobe Flash Animationen reihenfolge_aendern.swf1.70 KB
badskill#5
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

01.09.2009, 10:51

Moin,
das
ActionScript:
1
2
3
var altesElement = elemente_arr[elemente_arr.length - 1];
elemente_arr.pop();
elemente_arr.unshift(altesElement);

kann man auch so schreiben:
ActionScript:
1elemente_arr.unshift(elemente_arr.pop());
Sleepingbeast#6
Benutzerbild von Sleepingbeast
Beiträge: 579
Wohnort: Halle
Registriert: Apr 2005

01.09.2009, 10:55

na ist ja noch besser....danke badskill. Das spart noch ein paar Zeilen und verwirrt nicht unnötig. Und ich hab auch gleich wieder was gelernt ;)


Patrick
_________________________________________________________
Um Rekursion wirklich zu verstehen, muss man zuerst Rekursion verstehen.
null != 'null' != 0 != '0'
indi#7
Benutzerbild von indi
Beiträge: 48
Registriert: Aug 2008

Themenautor/in

01.09.2009, 10:57

hi!

wow danke!!

aber wie bekomm ich jetzt das array variabel
also x-anzahl von mc's mit variablen namen ?
wie bekomm  ich da jetzt die mc-namen richtig rein ?

attacht werden die mc's per button-klick

DANKE !!!
mfg
indi
Sleepingbeast#8
Benutzerbild von Sleepingbeast
Beiträge: 579
Wohnort: Halle
Registriert: Apr 2005

01.09.2009, 11:27

Schau dir mal die Methode Array.push() an. Damit kannst du Elemente einem Array zufügen. Das kannst du dann durchaus dynamisch machen.
_________________________________________________________
Um Rekursion wirklich zu verstehen, muss man zuerst Rekursion verstehen.
null != 'null' != 0 != '0'
indi#9
Benutzerbild von indi
Beiträge: 48
Registriert: Aug 2008

Themenautor/in

01.09.2009, 19:06

hallo,

also das array befüllen klappt.
aber meine mc's sind fix fertig auf der bühne
(inkl textfelder usw.)
und nicht in der bibliothek zum attachen.


also doch mit swap depth da ich meine mc's genau übereinenader
legen will und immer nach klick das vorige oder nächste sichtbar sein soll.



mfg
indi
Geändert von indi am 01.09.09 um 19:10 Uhr
indi#10
Benutzerbild von indi
Beiträge: 48
Registriert: Aug 2008

Themenautor/in

02.09.2009, 19:28

hallo

vielleicht kann mir doch nochmal jemand helfen,

ich habe ein array das ich dynamisch fülle:

var elemente_arr:Array = [];

fülle es so:
elemente_arr.push(this._name);

das array sieht dann zb. so aus:
var elemente_arr:Array = [item01,item05,item07]; usw.
leider kann ich es nicht in ansteigender nummerierung machen.

jedes item wird mit einer eigenen tiefe attacht und liegen übereinander

ich möchte jetzt mit einem vor und einem zurück button
mich durch diese item's klicken

geht das irgendwie ?

HOFFE AUF HILFE
mfg
indi
Geändert von indi am 02.09.09 um 19:30 Uhr

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Javascript new line [Flash CS5] 23.11.2020 - user01234
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2022 Sebastian Wichmann - Flashhilfe.de