Antworten auf deine Fragen:
Neues Thema erstellen

Drag mit nachgleiten

ernstl

Aktives Mitglied

Hallo,

ich möchte Euch fragen, ob jemand eine Adresse kennt, auf der ich eine Flashdatei downloaden oder den AS gezeigt bekomme, das mir ermöglicht ein Objekt über den Screen zu ziehen und beim loslassen nach gleitet.

Hab´s schon selbst versucht umzusetzen -bekomme es aber einfach nicht hin :(
 

h_seldon

Aktives Mitglied

AW: Drag mit nachgleiten

Während des Ziehens errechnet man aus der zurück gelegten Strecke in bestimmten zeitlichen Abständen (z.B. enterFrame) die Geschwindigkeit. Nach dem Loslassen bewegt man das Objekt mit dieser Geschwindigkeit (oder einem Bruchteil derselben) weiter und verlangsamt das Tempo bis zum Stillstand (Reibung). Z.B. so was (mc ziehbare Instanz, Bildskript):

PHP:
var aPos:Array;
var aTempo:Array = [];
var nFaktor:Number = 0.5;
var nReibung:Number = 0.95;
mc.onPress = ziehen;
mc.onRelease = mc.onReleaseOutside = bewegen;
function ziehen() {
	this.startDrag();
	aPos = [this._x, this._y];	
	this.onEnterFrame = function() {
		aPos = [this._x, this._y];
	};
}
function bewegen() {
	this.stopDrag();
	aTempo[0] = (this._x-aPos[0])*nFaktor;
	aTempo[1] = (this._y-aPos[1])*nFaktor;
	this.onEnterFrame = function(){
		this._x += aTempo[0];
		this._y += aTempo[1];
		aTempo[0] *= nReibung;
		aTempo[1] *= nReibung;		
	}
}

Viel Spass
 

ernstl

Aktives Mitglied

AW: Drag mit nachgleiten

@h_seldon: Gute Erklärung und vielen Dank für den AS.Code.

Nachdem ich deine Erklärung gelesen habe, weiß ich auch was ich verkehrt gemacht habe. Ich habe nicht daran gedacht, dass ich die Geschwindigkeit auslesen muss. Hast mir sehr geholfen -danke :)
 

imuurmwrw

Noch nicht viel geschrieben

AW: Drag mit nachgleiten

Hallo ernstl,

könntest du deine Lösung bitte posten. Ich habe das selbe Problem, komme aber nicht wirklich weiter mit dem Script von h_seldon.
 

ssandner

Nicht mehr Newbie

AW: Drag mit nachgleiten

Hallo ernstl,

könntest du deine Lösung bitte posten. Ich habe das selbe Problem, komme aber nicht wirklich weiter mit dem Script von h_seldon.

Womit kommst du denn nicht klar? das script von h_seldon funktioniert einwandfrei. Einfach anstelle von "mc" den Instanznamen deines movieclips einfügen. Funzt sofort bei mir.
 

imuurmwrw

Noch nicht viel geschrieben

AW: Drag mit nachgleiten

genau das habe ich getan und es läuft nicht. Es wird auch kein Fehler angezeigt da ich noch mit Flash MX arbeite.
 

imuurmwrw

Noch nicht viel geschrieben

AW: Drag mit nachgleiten

PS:
Konkret das Drag & Drop funktioniert, nur nicht das nachgleiten. Ich hab natürlich auch schon versucht das Script umzuschreiben aber leider...:(

Seltsam auch das ein trace von aTempo[0] undefined bringt.

Wäre für Hilfe dankbar da ich schon seit Wochen nach einer Lösung suche....
 
Zuletzt bearbeitet:

ssandner

Nicht mehr Newbie

AW: Drag mit nachgleiten

Wie gesagt, dass script funktioniert einwandfrei, kann man eins zu eins übernehmen, nur den Instanznamen anpassen. Für weitere Fehlerhilfe müsstest du dein script mal hier posten.

By the way, falls jemand interessiert ist, in AS3 sieht die Geschichte dann so aus:

Code:
var aPos:Array=[this.movieclip_mc.x,this.movieclip_mc.y];;
var aTempo:Array=[0,0];
var nFaktor:Number=0.2;
var nReibung:Number=0.90;


stage.addEventListener(Event.ENTER_FRAME, display);
this.movieclip_mc.addEventListener(MouseEvent.MOUSE_DOWN, ziehen);
this.movieclip_mc.addEventListener(MouseEvent.MOUSE_UP, bewegen);

function display(event:Event)
{
	aPos=[this.movieclip_mc.x,this.movieclip_mc.y];
	
	aTempo[0]*=nReibung;
	aTempo[1]*=nReibung;
	this.movieclip_mc.x+=aTempo[0];
	this.movieclip_mc.y+=aTempo[1];
}


function ziehen(event:MouseEvent)
{
	this.movieclip_mc.startDrag();
	aPos=[this.movieclip_mc.x,this.movieclip_mc.y];
	
}
function bewegen(event:MouseEvent)
{
	this.movieclip_mc.stopDrag();
	aTempo[0] = (this.movieclip_mc.x-aPos[0])*nFaktor;
	aTempo[1] = (this.movieclip_mc.y-aPos[1])*nFaktor;
	this.movieclip_mc.x += aTempo[0];
	this.movieclip_mc.y += aTempo[1];
	
}
 

ernstl

Aktives Mitglied

AW: Drag mit nachgleiten

@ssandner: Sehr schön, dass Du diesen Thread durch AS3 erweiters. Danke an dieser Stelle.

@imuurmwrw: Also an Flash MX liegt es nicht, da der Code AS2 ist. Daher frage ich mich, ob Du den Code vielleicht an der verkehrten Stelle platziert hast. Dieser gehört in den Frame, in dem auch das Objekt liegt, das man ziehen kann. Nicht auf das Objekt selbst.

Wenn Du gar nicht weiter wissen solltest, dann poste doch mal die Fla und wir schauen mal, ob man einen möglichen Fehler finden kann.
 

imuurmwrw

Noch nicht viel geschrieben

AW: Drag mit nachgleiten

Erst einmal Danke an ssandner und ernstl für euer schnelles Feedback!

@ernstl: Ja Script liegt auf eigener Ebene in selbem Frame und spricht Objekt mc an. Wie gesagt drag drop funktioniert, nur nicht das nachgleiten. Script dabei unverändert.

Ich habe jetzt aber anhand der verwendeten Befehle von ssandners Script bei google eine Site gefunden mit einem Script dass auch bei meinem älterem Flash MX funktioniert. Für alle die es interessiert hier die URL:

[Flash 8] mc weich verschieben - Flash 8 - Flashbattle.de - Flashforum / Webdesign Community & Developer`s Page
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
118.621
Beiträge
1.538.379
Mitglieder
67.545
Neuestes Mitglied
Montemeyer
Oben