|
|
|||||
не меняется размер спрайта
Идея такова: нажимаем на мышь - появляется кружок, начинаем перемещать мышь - кружок вытягивается в овал. а у мя почему то появляется кружок, но размеры не меняются(
//fla import flash.display.Sprite; import flash.events.MouseEvent; import flash.events.Event; var sp:Sprite = new Sprite(); var xcor:Number; var ycor:Number; var sc:Boolean = false; function onDown (evt:MouseEvent) { sp = draw_round(mouseX,mouseY,1) var xcor:Number = mouseX; var ycor:Number = mouseY; addChild(sp); sc = true; } function scale (evt:Event) { if (sc) { sp.width = mouseX-xcor; sp.height = mouseY-ycor; } } function onUp (evt:MouseEvent) { sc = false; addChild(sp); } stage.addEventListener(MouseEvent.MOUSE_DOWN, onDown) stage.addEventListener(MouseEvent.MOUSE_UP, onUp); stage.addEventListener(Event.ENTER_FRAME, scale); Последний раз редактировалось RomECH; 18.09.2010 в 22:08. |
|
|||||
К сожалению я не могу исправить ваш вариант, но вот набросал свой, возможно вас это натолкнёт на верный путь.
var holder:Sprite=new Sprite() addChild(holder); var posX=0; var posY=0 stage.addEventListener(MouseEvent.MOUSE_DOWN,mouse_down) stage.addEventListener(MouseEvent.MOUSE_UP,mouse_up) function mouse_down(e:MouseEvent){ posX=mouseX; posY=mouseY; stage.addEventListener(MouseEvent.MOUSE_MOVE,mouse_move); } function mouse_move(e:MouseEvent){ holder.graphics.clear(); holder.graphics.lineStyle(0.1,0xFF0000); holder.graphics.drawCircle(0,0,1) holder.width=mouseX-posX; holder.height=mouseY-posY; holder.x=mouseX-holder.width/2; holder.y=mouseY-holder.height/2; } function mouse_up(e:MouseEvent){ stage.removeEventListener(MouseEvent.MOUSE_MOVE,mouse_move) } |
|
|||||
я тоже думал об этом. НО. получается очень непродуктивная работа
не хотел так напрягать флеш, но видимо, придется |
|
|||||
Я немного переделал ваш код. Посмотрите:
package { import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; public class Main extends Sprite { private var circle:Sprite = new Sprite(); private var xcor:Number; private var ycor:Number; private var isMouseDown:Boolean = false; public function Main() { stage.addEventListener(MouseEvent.MOUSE_DOWN, onDown) stage.addEventListener(MouseEvent.MOUSE_UP, onUp); stage.addEventListener(Event.ENTER_FRAME, onScale); } public function onDown(event:MouseEvent):void { circle = draw_round(10); circle.x = mouseX; circle.y = mouseY; addChild(circle); isMouseDown = true; } public function onScale(event:Event):void { if (isMouseDown) { circle.width = Math.abs(mouseX - circle.x); circle.height = Math.abs(mouseY - circle.y); } } public function onUp (event:MouseEvent):void { isMouseDown = false; //addChild(sp); } public function draw_round(radius:Number):Sprite { var sp:Sprite = new Sprite(); sp.graphics.lineStyle(1); sp.graphics.drawCircle(0,0, radius); return(sp); } } } |
Часовой пояс GMT +4, время: 22:56. |
|
« Предыдущая тема | Следующая тема » |
|
|