
12-10-2006, 18:44
|
|
|
|
חבר מתאריך: 03.09.05
הודעות: 2,857
|
|
|
מפני שזה חוסך עבודה, מיעל את הקוד והרבה יותר גמיש.
וזה גם לא מסובך, נסי את זה:
קוד:
function checkRange(nX1:Number, nY1:Number, nX2:Number, nY2:Number, nR:Number):Boolean {
var bInRange:Boolean = false;
var nVX:Number = nX1 - nX2;
var nVY:Number = nY1 - nY2;
var nD:Number = Math.abs(Math.sqrt(nVX*nVX + nVY*nVY));
if(nD <= nR)bInRange = true;
return bInRange;
}
nX1 וnY1 מייצגים את מיקום המוביקליפ, nX2 וnY2 מייצגים את מיקום הנקודה שאליה את רוצה שהמוביקליפ יצמד.
כל מה שאת צריכה לעשות זה לשלוח לפונקציה, בעת שחרור האובייקט, את מיקומו ואת מיקום "נקודת המגנט" ולבדוק אם התוצאה היא true (בטווח הרדיוס) או false (לא בטווח).
קוד:
mcClip.onReleas = drop;
function drop(){
this.stopDrag();
var bInRange:Boolean = checkRange(this._x, this._y, 100, 100);
if(bInRange){
this._x = 100;
this._y = 100;
}
}
}
כמובן שעדיף שיהיה לך מערך של "הנקודות המגנטיות" ושלכל מוביקליפ יהיה id (מספר) שמקשר אותו לנקודה שאליה הוא אמור להצמד.
_____________________________________
|