Volledige versie bekijken : auto play van Scrolling Thumbnail Panel
comfortdesign
%Europe/Berlin %604 %2010, 15:30
Ik heb van gotoandlearn.com http://gotoandlearn.com/play.php?id=25 een animatie geleerd te maken, waar je muis de positie van je movieclip bepaald. Nu begint hij alleen in een stilstaande positie, iemand een idee hoe je onderstaand script een soort van autoplay (op en neer) kan laten bewegen (misschien met een ease er bij?),
stop();
panel.onRollOver = panelOver;
function panelOver() {
this.onEnterFrame = scrollPanel;
delete this.onRollOver;
}
var b = stroke.getBounds(_root);
function scrollPanel() {
if(_xmouse<b.xMin || _xmouse>b.xMax || _ymouse<b.yMin || _ymouse>b.yMax) {
this.onRollOver = panelOver;
delete this.onEnterFrame;
}
if(panel._y >= 100) {
panel._y = 100;
}
if(panel._y <= -480) {
panel._y = -480;
}
var xdist = _ymouse - 300;
panel._y += Math.round(-xdist / 7);
}
Salvago
%Europe/Berlin %619 %2010, 15:51
Heb er wel een idee van. Maar ook jij zou dat zo kunnen hebben als je van te voren even zelf na denkt hoe zoiets in elkaar zit. De logica er achter heeft natuurlijk niets met code zelf te maken, dus kun je prima doen. Voor implementatie details/problemen kun je altijd hulp vragen.
Nu goed. Je ziet neem ik aan wel wat de positie van de mc bepaalt, en hoe je die dus zelf in kunt stellen (panel._y += snelheid;). Je weet ook al hoe je moet kijken wanneer de mc een bepaalde grens bereikt/overschrijdt. Dan is het enige wat je nog moet afhandelen het wisselen tussen autoplay en muis controle, maar dat doe je eigenlijk ook al bijna.
comfortdesign
%Europe/Berlin %634 %2010, 16:14
Tof dat je me mee laat denken, ik was zelf ook zo ver, maar in theorie kom ik er wel. Nu nog in de praktijk. Ergens moet tussen staan:
Als je de animatie ziet{
panel _y moet omlaag
if(panel._y = -480) {
panel._y = -480;
} else panel _y moet omhoog
if(panel._y >= 100) {
panel._y = 100;
} else panel _y moet omlaag
}
Ik had eerst geprobeerd om dit via de timeline te animeren met een tween, maar als ik dat doe dan klopt de panel._y = 100;/ panel._y = -480; niet meer.
Salvago
%Europe/Berlin %642 %2010, 16:24
Op zich zou het nog mogelijk zijn om te wisselen tussen tween en interactie, maar daar wil je inderdaad niet aan beginnen. Het zou bijna meer werk zijn, en veel minder flexibel.
Wat praktijk zit je op de goede weg, maar we zijn er nog niet helemaal.
Neem dit als ruw voorbeeld:
panelAutoplaySpeed = 5;
// een aparte onEnterFrame functie, zodat je kunt wisselen.
function autoScrollingPanel()
{
// beweeg het panel
panel._y += panelAutoplaySpeed;
// controleer de bounds, en keer de snelheid om als je er voorbij bent
if (panel._y = -480 || /*OR*/ panel._y >= 100) {
panelAutoplaySpeed = -panelAutoplaySpeed; // keer snelheid/beweeg richting om
}
}
Je kunt eventueel ook naar de standaard (of externe) tween engines kijken, mocht je het er wat interessanter uit willen laten zien, zoals easing.
comfortdesign
%Europe/Berlin %671 %2010, 17:06
Ok, als ik de code toevoeg heb ik nog niet zo veel beweging.
Waarschijnlijk moet er nog iets bij als:
Wanneer je met je muis buiten de mask komt { beweeg automatisch}
Anders {beweeg dankzij de muis}
P)
Salvago
%Europe/Berlin %731 %2010, 18:33
Helemaal correct.
Kijk daarvoor eens naar inhoud van de panelOver functie, en probeer er eens uit te komen.
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.