เผอิญเพื่อนมาถามให้ช่วยเขียนโค้ดให้ประมาณนี้
เลยทำมาประมาณนี้ ให้เพื่อนไป
http://img2.f0nt.com/flash/35c1e83bb880ee4b42a56f24a111e9bd.swfส่วนข้างล่างนี่ คือโค้ดที่ใช้ทั้งหมดครับ
mcRotate.onPress = function(){
startrotate = 1;
}
mcRotate.onRelease = mcRotate.onRollOut = mcRotate.onReleaseOutside = function(){
startrotate = 0;
}
mcRotate.onEnterFrame = function(){
if(startrotate == 1){
xVal = this._x - _xmouse;
yVal = _ymouse -this._y;
rotate =(Math.atan2(xVal, yVal)-1.5) * 60;
rotate = rotate % 360;
if(rotate < 0){
rotate += 360;
}
if((rotate >0 && rotate<180)){
mcRotate._rotation = rotate;
}
}else{
if(mcRotate._rotation > 0){
mcRotate._rotation -=2;
}
}
}
ตัวนี้ เพื่อนบอกมาว่า จะให้หมุนได้แค่ 180 องศาบน พอปล่อยเมาท์ ก็ให้มันหมุนกลับมาน่ะครับ
ซึ่งตัวนี้ ที่ผมใช้หลักๆ คือ ช่วงที่กด กับช่วงที่ปล่อย
แล้วก็ใช้ onEnterFrame ในการให้มันทำ animation ตลอดเวลาที่แสดงผลอยู่
แล้วก็
xVal = this._x - _xmouse;
yVal = _ymouse -this._y;
rotate =(Math.atan2(xVal, yVal)-1.5) * 60;
rotate = rotate % 360;
if(rotate < 0){
rotate += 360;
}
เป็นโค้ดที่ทำให้เราหาได้ว่า ตอนนี้ เม้าท์เรา ทำองศาเท่าไร กับตัว movie clip นั้นอยู่
หลักๆ ก็ประมาณนี้น่ะครับ
ปล. อาจจะมีโค้ดที่ง่ายกว่านี้นะครับในการหาองศา แต่เนื่องจากไม่มีเวลา เลยต้องมานั่งบู้ + มั่วเอาจนได้มา