![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jun 2012
Сообщений: 6
|
Помогите новенькому советом.
Задача такова: 1) Нарисовать объект и добавить на сцену; 2) Приравнять радиус к объекту (если мы увеличиваем радиус, то и объект увеличивается). Создал 2 класса package { import flash.display.Shape; import flash.display.Sprite; import flash.events.Event; /** * ... * @author Zik */ public class Main extends Sprite { public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); // entry point var ball_mc:ball = new ball(); addChild (ball_mc); trace (ball_mc, "rrr") ball_mc.radius = 100; trace (ball_mc.radius); trace (ball_mc.diam); } } } package { import flash.display.MovieClip; import flash.display.Shader; import flash.display.Shape; import flash.events.Event; /** * ... * @author Zik */ public class ball extends MovieClip { private var _radius:Number; private var _diam:Number; private var circle:Shape; public function ball() { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event=null):void { removeEventListener(Event.ADDED_TO_STAGE, init); circle = new Shape (); circle.graphics.lineStyle (30, 0x00FFFF); circle.graphics.drawCircle(500, 50, 50); addChild (circle); //_diam = (Number)circle.x; } public function get radius():Number { return _radius; } public function set radius(value:Number):void { _radius = value; _diam = _radius / 2; } public function get diam():Number { return _diam; } public function set diam(value:Number):void { _diam = value; //_diam = Number(circle); } } } Подскажите, или дайте ориентировку. Спасибо. |
|
|||||
|
[+1 05.11.12]
Регистрация: Feb 2011
Сообщений: 431
|
Ну так после того как задали радиус , надо перерисовать круг в ball, он сам собой не перерисуется.
|
|
|||||
|
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
|
Диаметр = радиус делить на два?
Добавлено через 7 минут Main.as: package { import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; /** * ... * @author Hauts */ public class Main extends Sprite { private var _ball:Ball; public function Main() { addEventListener(Event.ADDED_TO_STAGE, onAdded); } private function onAdded(e:Event):void { removeEventListener(Event.ADDED_TO_STAGE, onAdded); _ball = new Ball(); _ball.x = _ball.y = 100 addChild(_ball) stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); mouseMoveHandler(null) } private function mouseMoveHandler(e:MouseEvent):void { _ball.diameter = (stage.mouseX - _ball.x) / 2 } } } package { import flash.display.Graphics; import flash.display.Shape; import flash.display.Sprite; /** * ... * @author Hauts */ public class Ball extends Sprite { private var _shape:Shape; private var _radius:Number; private var _diameter:Number public function Ball(diameter:Number = 10) { super(); _shape = new Shape() addChild(_shape) diameter = diameter } private function render():void { var gr:Graphics = _shape.graphics; gr.clear(); gr.lineStyle(1) gr.beginFill(0xFF0000); gr.drawCircle(0, 0, _radius); gr.endFill() } public function set radius(value:Number):void { _radius = value; _diameter = _radius * 2; render(); } public function set diameter(value:Number):void { _diameter = value; _radius = value / 2 render(); } public function get radius():Number { return _radius } public function get diameter():Number { return _diameter } } }
__________________
hauts.ru |
|
|||||
|
Регистрация: Jun 2012
Сообщений: 6
|
Большое спасибо.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 02:39. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|