• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-10-2006, 17:50   #1 (permalink)
#Bild = ME#
 
Benutzerbild von DerIngo
 
Registriert seit: Nov 2005
Beiträge: 499
Highest Depth beim Draggen von Objekten

Hi,

ich bin grad dabei mich ausfühlich mit der drag funktion zu beschäftigen (ist das überhaupt ne funktion???, egal) auf jeden fall möchte ich, das wenn ich eines meiner 10 objekte anklicke und auf eine andere position dragge, das es immer das höchste objekt ist, heißt: Wenn ich drauf klick, dass es sich über das andere über ihn befindende sichtbar wird.
Wie realisiere ich das?
__________________
<<<SPIELE-PROJEKT>>>
DerIngo ist offline   Mit Zitat antworten
Alt 17-10-2006, 17:53   #2 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.594
Ein Blick ins Manual bei
MovieClip.getNextHighestDepth();
sollte für Klarheit sorgen...

Hat außerdem mit Flash 8 nix zu tun.... --> verschoben
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist offline   Mit Zitat antworten
Alt 17-10-2006, 19:07   #3 (permalink)
#Bild = ME#
 
Benutzerbild von DerIngo
 
Registriert seit: Nov 2005
Beiträge: 499
Stimmt ok. Aber es ist doch mit Highest depht möglich oder? Das ist doch der parameter mit dem ich den gewünschten effekt erziele oder?
__________________
<<<SPIELE-PROJEKT>>>
DerIngo ist offline   Mit Zitat antworten
Alt 17-10-2006, 21:27   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.109
Code:
mcs = [a_mc, b_mc, c_mc];
mc_swap = Number.MIN_VALUE;
//
for (var i in mcs) {
	mc_swap = Math.max(mc_swap, mcs[i].getDepth());
	mcs[i].onPress = function() {
		this.swapDepths(mc_swap);
		this.startDrag();
	};
	mcs[i].onRelease = stopDrag;
}
__________________
die ultimative antwort auf alle programmierfragen: der debugger!
- vor eine programmzeile klicken (==roter punkt)
- im menü "debuggen" aufrufen
- auf den grünen pfeil klicken
- im swf etwas machen (der programmablauf hält beim roten punkt)
- links die objekte auswählen, variable, interne... mal alles ansehen!
mit dem debugger kann man sein programm schrittweisse abarbeiten und in alle variable reinsehen.

mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 18-10-2006, 09:58   #5 (permalink)
Flash and chips.
 
Benutzerbild von Zett
 
Registriert seit: Jun 2001
Ort: Graz
Beiträge: 529
Code:
mcs[i].onRelease = stopDrag;
cool, die schreibweise kannte ich noch nicht...

...das script erzeugt aber nicht den 'echten' windows-effekt, bei dem die nicht betroffenen fenster in der richtigen reihenfolge bleiben...

wenn dir die levels an sich egal sind (beispielsweise weil die 10 mcs alleine in einem container liegen), geht es mit

Code:
mcs = [a_mc, b_mc, c_mc];
for (var i in mcs) {
	mcs[i].onPress = function()
	{
		this.swapDepths(this._parent.getNextHighestDepth());
		this.startDrag();
	};
	mcs[i].onRelease = stopDrag;
}
recht simpel.
is halt unsauber, da die levels immer weiter hochwandern. dann müsste man noch eine kleine sort()-routine o.ä. dazu schreiben...
__________________
The map is NOT the territory.
Zett ist offline   Mit Zitat antworten
Alt 18-10-2006, 10:38   #6 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.109
Zitat:
Zitat von Zett Beitrag anzeigen
mcs[i].onRelease = stopDrag;
stopDrag(); // ausführung einer funktion
xxx = stopDrag; // den link auf eine funktion zuweissen

Zitat:
Zitat von Zett Beitrag anzeigen
das script erzeugt aber nicht den 'echten' windows-effekt
stimmt, das ist ja auch der 'echte' flash-mc-effekt ;-)

http://www.seibsprogrammladen.de/fra...ispiele/flash6
-> Grundwissen
Swap: swapDepts + swap in Reihe + swap nach der Grösse
__________________
die ultimative antwort auf alle programmierfragen: der debugger!
- vor eine programmzeile klicken (==roter punkt)
- im menü "debuggen" aufrufen
- auf den grünen pfeil klicken
- im swf etwas machen (der programmablauf hält beim roten punkt)
- links die objekte auswählen, variable, interne... mal alles ansehen!
mit dem debugger kann man sein programm schrittweisse abarbeiten und in alle variable reinsehen.

mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 18-10-2006, 11:47   #7 (permalink)
Flash and chips.
 
Benutzerbild von Zett
 
Registriert seit: Jun 2001
Ort: Graz
Beiträge: 529
schon klar, aber ich hab halt immer
Code:
var x=function()
{
  stopDrag();
}
geschrieben... das alte leiden, wenn was funktioniert, bleibt man dabei, auch wenn's einfacher gehen würde...

Zitat:
stimmt, das ist ja auch der 'echte' flash-mc-effekt ;-)
ebenfalls klar, swapDepths tauscht die ebenen der mcs. aber so wie ich Ingo verstanden hab, will er den ms-windows effekt haben, und der schiebt das gewählte fenster in den vordergrund, ohne die anderen fenster zu verändern.
__________________
The map is NOT the territory.
Zett ist offline   Mit Zitat antworten
Alt 19-10-2006, 20:40   #8 (permalink)
#Bild = ME#
 
Benutzerbild von DerIngo
 
Registriert seit: Nov 2005
Beiträge: 499
Klappt ja wunderbar. Nur es ist halt so, das wenn ich ein anderes auswähle, das sich alle anderen wieder in ihre ursprungsform zurückgehen. Also hab ich zwei überlagernde und klicke auf das nächste legt sich das darunterliegende wieder drüber. Verwirrend geschrieben, tut mir leid. Versteht's ihr was ich mein?
Wisst ihr was man dagegen machen kann?
__________________
<<<SPIELE-PROJEKT>>>
DerIngo ist offline   Mit Zitat antworten
Alt 19-10-2006, 21:04   #9 (permalink)
Flash and chips.
 
Benutzerbild von Zett
 
Registriert seit: Jun 2001
Ort: Graz
Beiträge: 529
lol...
darüber haben wir eigentlich schon diskutiert...

Zitat:
...das script erzeugt aber nicht den 'echten' windows-effekt, bei dem die nicht betroffenen fenster in der richtigen reihenfolge bleiben...
__________________
The map is NOT the territory.

Geändert von Zett (19-10-2006 um 21:05 Uhr)
Zett ist offline   Mit Zitat antworten
Alt 19-10-2006, 21:49   #10 (permalink)
#Bild = ME#
 
Benutzerbild von DerIngo
 
Registriert seit: Nov 2005
Beiträge: 499
Achso das habt ihr beiden damit gemeint. Habt ich das auch schon gelöst wie ich sehe? Oder was is das genau was da noch steht.
__________________
<<<SPIELE-PROJEKT>>>
DerIngo ist offline   Mit Zitat antworten
Alt 20-10-2006, 09:16   #11 (permalink)
Flash and chips.
 
Benutzerbild von Zett
 
Registriert seit: Jun 2001
Ort: Graz
Beiträge: 529
okay, nochmal:

wenn du hgseibs script so anpasst:

Code:
mcs = [a_mc, b_mc, c_mc];
for (var i in mcs) {
	mcs[i].onPress = function()
	{
		this.swapDepths(this._parent.getNextHighestDepth());
		this.startDrag();
	};
	mcs[i].onRelease = stopDrag;
}
hast du den gewollten effekt, sofern ich dich richtig verstanden hab. nachteil dieses scripts ist, dass die ebenen der mcs immer weiter in die höhe wandern, was eventuell zu seiteneffekten führen kann. aber das musst du einfach ausprobieren.

g,
Z.
__________________
The map is NOT the territory.
Zett ist offline   Mit Zitat antworten
Alt 20-10-2006, 13:50   #12 (permalink)
#Bild = ME#
 
Benutzerbild von DerIngo
 
Registriert seit: Nov 2005
Beiträge: 499
Ja ok, ich musste das script sowieso schon etwas ummodifizieren. Das mit den neuen leveln ist aber eine ziemlich unsaubere Methode. Für andere movies wäre da kein platz.
__________________
<<<SPIELE-PROJEKT>>>
DerIngo ist offline   Mit Zitat antworten
Alt 20-10-2006, 19:39   #13 (permalink)
Neuer User
 
Registriert seit: Nov 2004
Beiträge: 138
Salut,

kleiner Tipp: Ersetze am besten noch die vorletzte Zeile durch:
ActionScript:
  1. mcs[i].onRelease = mcs[i].onReleaseOutside = stopDrag();



Rührei
FireShark ist offline   Mit Zitat antworten
Alt 20-10-2006, 19:49   #14 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Zitat:
Zitat von FireShark Beitrag anzeigen
Salut,

kleiner Tipp: Ersetze am besten noch die vorletzte Zeile durch:
ActionScript:
  1. mcs[i].onRelease = mcs[i].onReleaseOutside = stopDrag();



Rührei
Besser wäre:
PHP-Code:
mcs[i].onRelease mcs[i].onReleaseOutside stopDrag
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 20-10-2006, 20:07   #15 (permalink)
Neuer User
 
Registriert seit: Nov 2004
Beiträge: 138
Hehe, ja, das wäre sogar noch besser.

Sorry, das meinte ich natürlich.
FireShark 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 03:49 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele