Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 15-05-2006, 08:31   #1 (permalink)
machtmichschlau!
 
Benutzerbild von Papaligo
 
Registriert seit: Apr 2006
Beiträge: 62
Drag & Drop bei sich ändernden MC

Hallo zusammen.

Zur vorgeschichte:
Ich habe einen Array der mit MCs gefüllt ist. aus diesem Array werden (immer einzeln) MCs auf eine bestimmte Position auf der Bühne gesetzt. Diese MCs speicher ich in einer Variablen namens "Reingeschoben" ab. Nun möchte ich mit drag & Drop den MC bewegen. Soweit so gut!

Problem:
Beim ersten Mc der in "Reingeschoben" steckt, funktioneiert Drag&Drop wunderbar, sobald ich aber den nächsten MC in "Reingeschoben" setze (der zuvorige Mc wurde dort wieder entfernt), funktioniert das Drag&Drop nicht mehr.
Kann es sein das ich soetwas wie "aktuallisieren" muß?

Für euere Hilfe bin ich euch sehr dankbar.
Gruß
Papaligo ist offline   Mit Zitat antworten
Alt 15-05-2006, 10:35   #2 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
hier wäre etwas script hilfreich...
__________________
[mooseMash]
mooseMash ist offline   Mit Zitat antworten
Alt 15-05-2006, 11:04   #3 (permalink)
machtmichschlau!
 
Benutzerbild von Papaligo
 
Registriert seit: Apr 2006
Beiträge: 62
Ok, ich habe hier mal die teile des AS die mir hierfür für relevant scheinen kopiert.
Ich hoffe nun kann man damit was anfangen:=)

Code:
var reingeschoben = this.attachMovie("feld0", "feld26", 139);

//Funktin linksrein
function vonlinks(reihe) {
	//zuerst wird das letzten feld in den Platzhalter "rausgeschoben" verfrachtet. Length-1 da index bei null beginnt
	rausgeschoben = spielfeld_array[reihe][spielfeld_array[reihe].length-1];
	for (i=spielfeld_array[reihe].length-1; i>0; i--) {
		//Felder 0 bis 3 um 50 nach rechts tweenen
		new Tween(spielfeld_array[reihe][i-1], "_x", Strong.easeInOut, spielfeld_array[reihe][i-1]._x, 600-(Anzahl_reihen_spalten-i-1)*100, 10);
		//Arrayinhalte verschieben
		spielfeld_array[reihe][i] = spielfeld_array[reihe][i-1];
	}
	//Das Feld zum reinschieben auf das frei gewordene feld der passenden reihe setzen
	reingeschoben._x = 200;
	reingeschoben._y = 200+100*reihe;
	//den inhalt in den dafür vorgesehenen Arrayplatz schreiben
	spielfeld_array[reihe][0] = reingeschoben;
	//das rausgeschobene Feld auf den dafür vorgeschriebenen Platz stellen
	rausgeschoben._x = Anzahl_reihen_spalten*100+350;
	rausgeschoben._y = 150;
	reingeschoben = rausgeschoben;
}

//Funktionsaufruf wenn ein Feld von Links eingeschoben wird
this.btn01.onRelease = function() {
	vonlinks(1);}

this.reingeschoben.onPress = function() {
	this.startDrag(false);
	updateAfterEvent();
};
this.reingeschoben.onRelease = function() {
	this.stopDrag();
};

Geändert von Papaligo (15-05-2006 um 11:06 Uhr)
Papaligo ist offline   Mit Zitat antworten
Alt 15-05-2006, 11:05   #4 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
Kann es sein das ich soetwas wie "aktuallisieren" muß?
Deine Drag+Drop-Events müssen sich auf die richtige MC-Instanz beziehen. Ansonsten poste mal die fla.
  Mit Zitat antworten
Alt 15-05-2006, 11:31   #5 (permalink)
machtmichschlau!
 
Benutzerbild von Papaligo
 
Registriert seit: Apr 2006
Beiträge: 62
Meine fla ist zu groß auch wenn ich sie Packe.

Ich beziehe mich ja immer auf die Variable "reingeschoben" in der die Instanz drinne steht. Der inhalt dieser ändert sich eben manchmal.

wie gesagt, beim ersten MC der in "reingeschoben" liegt, funzt das alles auch noch.
Papaligo ist offline   Mit Zitat antworten
Alt 15-05-2006, 12:48   #6 (permalink)
Schläfer
 
Registriert seit: Oct 2003
Beiträge: 105
Also, ich kanns zwar leider nicht testen, da ich die FLA nicht habe, aber ich vermute, da liegt folgendes Problem vor:

Bei einer Zuweisung mit = in AS kopierst du nicht etwa einen MovieClip, sondern legst lediglich eine Referenz in der Variable reingeschoben ab. Da du die onPress-Funktion nur einmal deklarierst, wird die Funktion nur auf den Movieclip angewendet, der gerade aktiv ist - alle anderen MC's haben also keine onPress-Funktion.
Das verhinderst du, indem du beim Erstellen der MovieClips jedem einzelnen diese onPress-Funktion mitgibst.

Ich hoffe, das war soweit verständlich.

Gruß Pesse
__________________
Pesse's Blog
Pesse ist offline   Mit Zitat antworten
Alt 18-05-2006, 08:59   #7 (permalink)
machtmichschlau!
 
Benutzerbild von Papaligo
 
Registriert seit: Apr 2006
Beiträge: 62
Aber genau das will ich ja,
es soll immer nur der MC beweglich sein, der "in" "reingeschoben" steckt.
Papaligo 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 02:50 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele