PDA

Volledige versie bekijken : Mc laten bewegen tot een bepaald punt.


treurmars
%Europe/Berlin %508 %2005, 12:12
Niet de allerbeste titel maar ik hoop dat het zo toch nog gevonden wordt.
Wat het probleem is:
Ik ben bezig met het maken van een soort menu voor een gallery waar een aantal thumbnails instaan. Nu moet het dus zo zijn dat als ik op een knopje druk dat hij dan een X aantal pixels verschuift. Dit is opzich nog niet zo'n probleem, maar ik wil dus dat hij maar maximaal kan bewegen tot het einde van de movieclip, dus dat je allereerst de breedte van de Mc uitrekent en maximaal tot dat punt kunt bewegen.

Ik hoop dat ik het zo een beetje duidelijk heb uitgelegd en dat iemand me hier mee op weg kan helpen. Zo'n goeie AS-er ben ik nou ook weer niet getuige van deze vraag.

Alvast bedankt uiteraard.

jelmerdewilde
%Europe/Berlin %519 %2005, 12:28
onEnterFrame = function(){
if(jeMC._x < 180){
knop1.onRelease = function(){
jeMC._x + = 10
}
}
}

je moet een beetje experimenteren met if(*), hierboven zal jeMC niet verder gaan wanneer jeMC op x = 180 zit :)

Jelmer

rackdoll
%Europe/Berlin %521 %2005, 12:31
je kan de "Stage.width" code gebruiken om te kijken hoe groot je stage is,
dan zou je dus kunnen zeggen:

this.onEnterFrame = function(){
mc._x += 10;
if(mc._x >= Stage.width){
mc._x = Stage.width;
}
}

dit werkt wel....mits je je registratie punt wel aan de rechterkant zet ;)
k hoop dat k je hiermee heb geholpen [^]
hai

rackdoll
%Europe/Berlin %523 %2005, 12:33
jelmer die code van jou.....die rekent dus niet uit hoe groot de stage is.........Gebruik daarvoor Stage.width !!!!

treurmars
%Europe/Berlin %528 %2005, 12:41
Ok, ik weet niet of ik wat fout heb gedaan of dat het wat anders is, maar in principe doen ze het beiden, maar ze kunnen gewoon eeuwig gebruikt worden zeg maar, er is geen enkel punt waarbij hij stopt.
Enig idee?

edit: ok rackdoll met die van jou doet hij het nu wel goed, maar nog snap ik het niet helemaal, hij neemt toch je stage width, dat is dan toch gewoon de breedte van het flash document?

edit 2: Ok ik heb nu stage.width aangepast in MCnaam._width en nu doet hij het heel erg netjes. [^]
Wat ook voor de toekomst handig is aangezien degene voor wie ik dit maak nu makkelijk zelf zooi kan toevoegen en dat hij zichzelf dan aanpast (als het goed is) :D

pulletje
%Europe/Berlin %543 %2005, 13:02
In flash zitten een aantal dingen ingebouwd die vanalles kunnen, zo heb je bijvoorbeeld de statement "width" deze geeft de breedte van iets aan. Als je dus eerst gaat kijken hoe breed de MC is en stel die is 200 px dan ga je vervolgens kijken hoe breed het menutekstje is wat je wil laten verschuiven, stel dat is 50 px dan is het dus heel erg gemakkelijk om te zeggen 200-50 = 150 <-- dat is dus hetgeen dat hij op mag schuiven.

Wat je dus moet doen is:

twee variabele aanmaken met daarin de width van de movieclip en de width van de tekst of foto die je wil laten verschuiven

var breedte_mc = instancenaam_van_je_mc._width;
var breedte_tekst = instancenaam_van_je_tekst._width;
trace (breedte_mc);
trace (breedte_tekst);In je output veld zul je nu de twee waardes zien hoe breed je MC en je Tekst is.
vervolgens maak je een variabele verschuif aan, die aangeeft hoever hij mag verschuifen
var verschuif = breedte_mc - breedte_tekst;
trace (verschuif);Houd er wel rekening mee dat je er nu vanuit gaat dat je de tekst op de nullijn van je MC hebt staan. zou je tekst op bijv. 5 px van de nullijn staan (x = 5) dan moet je dat er ook nog afhalen. je zou dan krijgen: var verschuif = breedte_mc - breedte_tekst - instancenaam_van_je_tekst._x;
Als je dit allemaal hebt gedaan, dan kun je ervoor gaan zorgen dat je bij een rollon of een release de tekst gaat bewegen.
dat doe je door de volgende code:
instancenaam_van_je_tekst.onRelease = function(){
onEnterFrame = function(){
instancenaam_van_je_tekst._x += verschuif/8;
if(instancenaam_van_je_tekst._x >= verschuif){
instancenaam_van_je_tekst._x = verschuif;
}
}
}