Archief - Q: AS: Movieclip smooth verschuiven met AS

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Rimpel

Legacy Member
'll ik zou doormiddel van twee buttons (links en rechts) m'n MC willen laten verschuiven. Maar dit zou smooth moeten verlopen (nie direct verspringen maar alla motion tween) en er zou ook een max x waarde moeten zijn doordat hij niet buiten scherm kan doorschuiven.

ik heb nu op m'n buttons
on(release){
foto._x -=300
}
(hij moet verschuiven per 300px, de mc heet dus "foto")
maar hiermee verspringt hij uiteraard gewoon 300 px en hij zou moeten "schuiven".


kan iemand me hiermee helpen ?

=(X)=RaVen=

Legacy Member
interval enzo
ge maakt een functie, verschuif
en die roep je met een interval aan, na 300px stop je met een if ofzo

manson

Legacy Member
=(X)=RaVen= zei:
interval enzo
ge maakt een functie, verschuif
en die roep je met een interval aan, na 300px stop je met een if ofzo
en dat ... noemen ze de dingen moeilijk maken!

heel basis. dit plaats je in een frame op je tijdslijn (en niet rechtstreeks op je knop)
Code:
beweegMC = function(mc:String, naarWaar:Number, speed:Number){
	this[mc].onEnterFrame = function(){
		var difX = naarWaar - this._x;
		this._x -= difX/speed;
		if(Math.abs(difX) < 1){
			this._x = naarWaar;
			delete this.onEnterFrame;
		}
		
	}
}

this.button_btn.onRelease = function(){
	this._parent.beweegMC("mc", 300, 10);
}

Col.Kurtz

Legacy Member
Met setInterval haal je veel mooier resultaat !

ziehier een voorbeeld van onEnterframe <> setInterval :
http://www.ifc-crew.com/slideTo/

Voor beide werd 5 als speed genomen

De twee prototypes :
Code:
MovieClip.prototype.slideTo = function(x, y, speed) {
	//
	this.onEnterFrame = function() {
		if (Math.abs((x-this._x))<1 && Math.abs((y-this._y))<1) {
			this._x = x;
			this._y = y;
			delete this.onEnterFrame;
		} else {
			this._x -= (this._x-x)/speed;
			this._y -= (this._y-y)/speed;
			updateAfterEvent();
		}
	};
};
Code:
MovieClip.prototype.slideTo = function(x, y, speed) {
	//
	this._x -= (this._x-x)/speed;
	this._y -= (this._y-y)/speed;
	//
	clearInterval(this.intervalId);
	//
	if (Math.abs((x-this._x))<1 && Math.abs((y-this._y))<1) {
		this._x = x;
		this._y = y;
	} else {
		this.intervalId = setInterval(this, "slideTo", 15, x, y, speed);
	}
	//
	updateAfterEvent();
};

The Patriot

Legacy Member
PFft, hunder maakt da allemaal veel te moeilijk.

Moet eens zoeken achter dyntweens... ;)

manson

Legacy Member
de slideTo van Kurtz is een goeie oplossing, mooi verpakt in een prototype
komt daar nog eens bij dat ik het niet wist van setInterval zijnde 'vlotter' dan onEnterFrame

LunchBox

Legacy Member
robert penner's easing equations:
http://www.robertpenner.com/easing/

> voor de demo(nstratie): selecteer een 'equation' en click ergens op het blauwe gedeelte +5cm van de bal, de curve is dus geen path maar het functievoorschrift in grafiek-vorm. (versnelling/vertraging)

> zo kan je relatief eenvoudig een elastisch effect nabootsen en zoveel meer, zeker'ns bekijken.

ps: macromedia heeft die zaken geïntegreerd in mx 2004 als'k me ni vergis.

manson

Legacy Member
LunchBox zei:
ps: macromedia heeft die zaken geïntegreerd in mx 2004 als'k me ni vergis.
u vergist zich niet
zo te gebruiken:
Code:
new mx.transitions.Tween(mc, "_x", mx.transitions.easing.Elastic.easeInOut, begin, doel, tijd);
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan