Oct
1
Seuraa johtajaa
Filed Under AS2, Flash & Flex, Tutorials
“Volume slaiderin“- tekeminen on varmasti monelle tuttua puuhaa. MovieClipin pakottaminen seuraamaan suoraa viivaa pysty- tai vaakasuunnassa on aika yksinkertainen toimenpide, mutta entä monimutkaisemmat muodot ja polut.
Tässä yksi tapa. Alla koodi yksinkertaisimmillaan.
function ballPos(mc:MovieClip, xp:Number):Void { mc._x = xp; var yp = 0; do { yp++; } while(!mLine.hitTest(xp, yp, true)); mc._y = yp; updateAfterEvent(); }
Katso esimerkki: Follow the Path | FLA
Ja vielä koodi kokonaisuudessaan:
mBall.onMouseMove = function():Void { // tarkistetaan, että ollaan rajatulla alueella if(isInside()) { ballPos(mBall, _root._xmouse); } } function ballPos(mc:MovieClip, xp:Number):Void { // pallon x on sama kuin hiiren x mc._x = xp; // aloitetaan oikean paikan haku pystysuunnassa var yp = 0; do { yp++; } // suoritetaan lisäys kunnes saavutetaan muoto while(!mLine.hitTest(xp, yp, true)); // asetetaan pallon koordinaatti mc._y = yp; updateAfterEvent(); } // alustetaan pallon paikka ballPos(mBall, mBall._x); // alueen tarkistus function isInside():Boolean { var xp = _root._xmouse; if(xp < 0 || xp > Stage.width) return false; return true; }
Pallon x on siis koko ajan sama kuin hiiren x. Y:n arvo saadaan selville hitTestillä. Aloitetaan y-koordinaatista 0 ja lisäätään y:n arvoa while-loopissa joka “kierroksella” yhdellä. Kun while lauseen hitTest palauttaa arvon tosi, ollaan saavutettu muodon pinta ja päivitetään pallon y-koordinaatti. Olennaista on myös huomata, että kolmannen parametrin tulee olla true, koska haluamme testata osuman itse varsinaisen muodon kanssa (BoundingBoxin sijaan).
Comments
One comment to “Seuraa johtajaa”
Leave a comment

Hello my friend, your site is very good!