آیا درگ فقط در یکی از محورها امکان داره؟؟

سلام
آیا درگ کردن پارامتر خاصی نداره که مثلا فقط در یکی از محورها درگ انجام بشه مثلا فقط در محور x شی من جابجا بشه
object.startDrag()
اینطوری به طور کامل به همراه موس جابجا میشه. البته من با یک سری حقه به هدفم رسیدم ولی باعث شده در روان بودن حرکت شی از طریق درک تأثیر منفی بگذاره. برای همین میخام اگه پارامتر خاصی داره از همون استفاده کنم.
 

Fanous

Well-Known Member
سلام
آیا درگ کردن پارامتر خاصی نداره که مثلا فقط در یکی از محورها درگ انجام بشه مثلا فقط در محور x شی من جابجا بشه
object.startDrag()
اینطوری به طور کامل به همراه موس جابجا میشه. البته من با یک سری حقه به هدفم رسیدم ولی باعث شده در روان بودن حرکت شی از طریق درک تأثیر منفی بگذاره. برای همین میخام اگه پارامتر خاصی داره از همون استفاده کنم.

سلام
کافیه محدوده درگ رو بصورت یک خط تعریف کنی نه یک مستطیل
مثلا از 100,100 تا 200,100
 
سلام از همراهی شما بسیار ممنونم
من تو منابع دیگه دارم میگردم و کدهای مختلفی را دیدم. ولی اگه میفرمودین چجوری این کار را انجام بدم منو از سردرگمی نجات میدادین.
 
سلام دیگه نیاز نیست به این سؤال جواب بدین. ولی گفتم شاید جواب این سؤال برای برخی مهم باشه راهی را که پیدا کردم را میگزارم.



[PHPS]

package {
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.events.Event;
import flash.geom.Rectangle;

public class Touch_Scroll extends MovieClip{
private var dragRectangle:Rectangle;
private var object:Objects = new Objects();

// درگ فقط در محور ایکس انجام می شود
public function Touch_Scroll(){
object.addEventListener(MouseEvent.MOUSE_DOWN,startDragging);
object.addEventListener(MouseEvent.MOUSE_UP,stopDragging);
object.addEventListener(MouseEvent.ROLL_OUT,stopDragging);
addChild(object);

var lock:Number = object.y;
// موقعیت اولیه درگ را مشخص می کند
var loc1:Number = ...;
// رکتنگل:مستطیل موقعیت و عرض و طول آن تعریف شود اگر دراگ افقی است ارتفاع صفر خواهد بود
dragRectangle = new Rectangle(loc1,lock,object.width,0);
}

private function startDragging(e:MouseEvent) {
locStartDrag = object.x;
object.startDrag(false,dragRectangle);
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
private function stopDragging(e:MouseEvent) {
object.stopDrag();
locStopDrag = object.x;
}
private function onEnterFrame(e:Event):void{
// موقعیت انتهایی درگ
var end:Number = ...;
if(object.x >= end){
object.stopDrag();
object.x = end-1;
}
}
}
}




[/PHPS]
 

جدیدترین ارسال ها

بالا