![]() |
|
||||||||||
|
|||||
|
Регистрация: Sep 2012
Сообщений: 6
|
Всем доброго времени!
Уважаемые знатоки пожалуйста помогите решить задачу. Есть код: package { import flash.display.Sprite; import flash.display.MovieClip; import flash.display.DisplayObject; import flash.display.Shape; import flash.events.*; public class Main extends Sprite { private var offsetX:int, offsetY:int, displayObject:DisplayObject; public function Main():void { this.init(); } private function init():void { var rectDrag:Sprite = new Sprite(); rectDrag.graphics.beginFill(0x000000); rectDrag.graphics.drawRect(0, 0, 45, 45); rectDrag.graphics.endFill(); var rect:Sprite = new Sprite(); rect.graphics.lineStyle(1, 0x006600); rect.graphics.drawRect(0, 0, 400, 400); rect.graphics.endFill(); var sprite:Sprite = new Sprite(); sprite.y = 300; sprite.x = 50; sprite.rotationY = -43; sprite.rotationX = -43; sprite.rotationZ = -36; rect.addChild(rectDrag); rectDrag.addEventListener(MouseEvent.MOUSE_DOWN, this.startd); rectDrag.addEventListener(MouseEvent.MOUSE_UP, this.stopd); sprite.addChild(rect); super.addChild(sprite); } private function startd(event:MouseEvent):void { this.displayObject = DisplayObject(event.target); this.offsetX = event.stageX - this.displayObject.x; this.offsetY = event.stageY - this.displayObject.y; super.stage.addEventListener(MouseEvent.MOUSE_MOVE, dragg); } private function stopd(event:MouseEvent):void { super.stage.removeEventListener(MouseEvent.MOUSE_MOVE, this.dragg); } private function dragg(event:MouseEvent):void { this.displayObject.x = event.stageX - this.offsetX; this.displayObject.y = event.stageY - this.offsetY; event.updateAfterEvent(); } } } Помогите в чем проблема? Если убрать: То все нормально двигается. Уже какой день не могу решить проблему. Как вообще правильно нужно сделать? Будьте так любезны подскажите, ка правильно нужно сделать. |
|
|||||
|
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
|
import flash.display.Sprite; import flash.display.MovieClip; import flash.display.DisplayObject; import flash.display.Shape; import flash.events.*; var offsetX:int,offsetY:int,displayObject:DisplayObject; var rectDrag:Sprite = new Sprite(); rectDrag.graphics.beginFill(0x000000); rectDrag.graphics.drawRect(0, 0, 45, 45); rectDrag.graphics.endFill(); var rect:Sprite = new Sprite(); rect.graphics.lineStyle(1, 0x006600); rect.graphics.drawRect(0, 0, 400, 400); rect.graphics.endFill(); var sprite:Sprite = new Sprite(); sprite.y = 300; sprite.x = 50; sprite.rotationY = -43; sprite.rotationX = -43; sprite.rotationZ = -36; rect.addChild(rectDrag); rectDrag.addEventListener(MouseEvent.MOUSE_DOWN, this.startd); addEventListener(MouseEvent.MOUSE_UP, this.stopd); sprite.addChild(rect); super.addChild(sprite); function startd(event:MouseEvent):void { this.displayObject = DisplayObject(event.target); this.offsetX = rectDrag.mouseX; this.offsetY = rectDrag.mouseY; super.stage.addEventListener(MouseEvent.MOUSE_MOVE, dragg); } function stopd(event:MouseEvent):void { super.stage.removeEventListener(MouseEvent.MOUSE_MOVE, this.dragg); } function dragg(event:MouseEvent):void { rectDrag.x = sprite.mouseX - offsetX; rectDrag.y = sprite.mouseY - offsetY; event.updateAfterEvent(); } ![]()
__________________
hauts.ru |
|
|||||
|
Регистрация: Sep 2012
Сообщений: 6
|
Красава все работает =)
package { import flash.display.Sprite; import flash.display.MovieClip; import flash.display.DisplayObject; import flash.display.Shape; import flash.events.*; public class Main extends Sprite { private var sprite:Sprite = new Sprite(), rectDrag:Sprite = new Sprite(), rect:Sprite = new Sprite(); private var displayObject:DisplayObject; public function Main():void { this.init(); } private function init():void { this.rectDrag.graphics.beginFill(0x000000); this.rectDrag.graphics.drawRect(0, 0, 45, 45); this.rectDrag.graphics.endFill(); this.rect.graphics.lineStyle(1, 0x006600); this.rect.graphics.drawRect(0, 0, 400, 400); this.rect.graphics.endFill(); this.sprite.y = 300; this.sprite.x = 50; this.sprite.rotationY = -43; this.sprite.rotationX = -43; this.sprite.rotationZ = -36; this.rect.addChild(this.rectDrag); this.rectDrag.addEventListener(MouseEvent.MOUSE_DOWN, this.startd); this.rectDrag.addEventListener(MouseEvent.MOUSE_UP, this.stopd); this.sprite.addChild(this.rect); super.addChild(this.sprite); } private function startd(event:MouseEvent):void { this.displayObject = DisplayObject(event.target); super.stage.addEventListener(MouseEvent.MOUSE_MOVE, this.dragg); } private function stopd(event:MouseEvent):void { super.stage.removeEventListener(MouseEvent.MOUSE_MOVE, this.dragg); } private function dragg(event:MouseEvent):void { this.displayObject.x = this.sprite.mouseX - 20; this.displayObject.y = this.sprite.mouseY - 20; if (displayObject.x < 0) { displayObject.x = 0; } if (displayObject.y < 0) { displayObject.y = 0; } if (displayObject.x > 355) { displayObject.x = 355; } if (displayObject.y > 355) { displayObject.y = 355; } event.updateAfterEvent(); } } } http://www.cyberforum.ru/actionscrip...ml#post3463174 |
![]() |
![]() |
Часовой пояс GMT +4, время: 09:51. |
|
|
« Предыдущая тема | Следующая тема » |
|
|