Как создавать свои Flash-игры, подобные Angry Birds и World of Goo?
Box2D - это библиотека, которая моделирует физическое поведение твердых тел в двумерном пространстве. Программисты могут использовать ее в своих играх, чтобы сделать...
Класс Main
package { import flash.events.*; import flash.utils.Timer; import flash.display.*; import flash.text.*; public class Main extends MovieClip { private var clock:MovieClip=new MovieClip(); private var secound:MovieClip = new MovieClip(); private var minutes:MovieClip = new MovieClip(); private var hours:MovieClip = new MovieClip(); private var angle:Number = -90 * Math.PI / 180; private var radius:Number = 130; private var XtoCircle:Number = 0; private var YtoCircle:Number = 0; public function Main() { stage.addEventListener(Event.ENTER_FRAME, onFrame); addChild(clock); //фон часов var shape:Shape = new Shape(); shape.graphics.beginFill(0x111111,1); shape.graphics.drawCircle(stage.stageWidth/2,stage.stageHeight/2,200); shape.graphics.beginFill(0xFFFFFF,1); shape.graphics.drawCircle(stage.stageWidth/2,stage.stageHeight/2,180); shape.graphics.beginFill(0x111111,0.99); shape.graphics.drawCircle(stage.stageWidth/2,stage.stageHeight/2,178); shape.graphics.beginFill(0xFF2244,1); shape.graphics.drawCircle(stage.stageWidth/2,stage.stageHeight/2,150); shape.graphics.endFill(); shape.graphics.beginFill(0x111111,0.9); shape.graphics.drawCircle(stage.stageWidth/2,stage.stageHeight/2,110); shape.graphics.endFill(); shape.graphics.beginFill(0xFFFFFF,1); shape.graphics.drawCircle(stage.stageWidth/2,stage.stageHeight/2,5); shape.graphics.endFill(); clock.addChild(shape); // Рисуем время for (var i:int=1; i<61; i++) { //Рассчитываем угол в радианах //Домножением на радиус синуса и косинуса угла получаем координаты X b Y относительно начала координат angle += 6 * Math.PI / 180; XtoCircle = radius * Math.cos(angle); YtoCircle = radius * Math.sin(angle); //Каждый пятый рисуем цифру обозначающую час иначе разделитель if((i)%5==0) { //Часы var t:TextField = new TextField(); t.text = String(i/5); t.autoSize = TextFieldAutoSize.LEFT; t.selectable = false; t.setTextFormat(new TextFormat(null,20,null,true)); t.x = XtoCircle + stage.stageWidth / 2 - t.width / 2; t.y = YtoCircle + stage.stageHeight / 2 - t.height / 2; clock.addChild(t); }else{ //Разделители var point:MovieClip = new MovieClip(); point.graphics.beginFill(0x222222,1); point.graphics.drawCircle(stage.stageWidth/2+XtoCircle,stage.stageHeight/2+YtoCircle,2); point.graphics.endFill(); clock.addChild(point); } } //Стрелка секундная var vect1:Shape = new Shape(); vect1.graphics.lineStyle(1, 0xFFFFFF, 1, false, LineScaleMode.VERTICAL, CapsStyle.ROUND, JointStyle.MITER, 1); vect1.graphics.moveTo(0,0); vect1.graphics.lineTo(0,150); vect1.rotation = 180; vect1.y += 25; secound.addChild(vect1); clock.addChild(secound); secound.x = stage.stageWidth / 2; secound.y = stage.stageHeight / 2; //Стрелка минутная var vect2:Shape = new Shape(); vect2.graphics.lineStyle(2, 0xFFFFFF, 1, false, LineScaleMode.VERTICAL, CapsStyle.ROUND, JointStyle.MITER, 1); vect2.graphics.moveTo(0,0); vect2.graphics.lineTo(0,120); vect2.rotation = 180; vect2.y += 20; minutes.addChild(vect2); clock.addChild(minutes); minutes.x = stage.stageWidth / 2; minutes.y = stage.stageHeight / 2; //Стрелка часовая var vect3:Shape = new Shape(); vect3.graphics.lineStyle(3, 0xFFFFFF, 1, false, LineScaleMode.VERTICAL, CapsStyle.ROUND); vect3.graphics.moveTo(0,0); vect3.graphics.lineTo(0,80); vect3.rotation = 180; vect3.y += 15; hours.addChild(vect3); clock.addChild(hours); hours.x = stage.stageWidth / 2; hours.y = stage.stageHeight / 2; } //Поворачиваем стрелки с каждым кадром для большей точности private function onFrame(e:Event) { secound.rotation = (new Date()).seconds * 6; minutes.rotation = (new Date()).minutes * 6; hours.rotation = (new Date()).hours * 30 + (new Date()).minutes/2; } } }
Впервые!
Если у вас было хоть раз желание сделать что-то новое и необычное, то этот видеокурс для вас! Знания ActionScript 3.0 вдохнут в ваши проекты новую жизнь, позволив тем самым поднять их на новый уровень
С помощью этого видеокурса вы пройдёте путь от новичка до Объектно-Ориентированного Программирования, сможете работать со многими популярными библиотеками и научитесь создавать сайты во flash! + Видеокурс по PaperVision3D в подарок!
Видеокурс содержит 119 видеоуроков в 12 главах. На сегодняшний день это единственный видеокурс, таких масштабов
Комментарии
Это часы написанные на ActionScript 3.0. Нет ничего нарисованного, все делается кодом.
Возможно такая и была задумка, но минутная стрелка скачет по минутам, а не плавно идет, например как часовая.
А вообще, хорошо! Только не понял зачем стрелки (shape) добавлять в мувиклипы...
Можно было и без этого обойтись, зато так координаты обнулили и поворот, и кстати точка относительно которой меняется угол изменилась тоже. т.к. если раньше стрелка просто бы крутилась вокруг крайней точки, то теперь одна ее часть немного уходит назад. (vect1.y += 25;)
А еще мне кажется так логически правильнее, есть контейнер, который хранит исходное изображение со всеми настройками, который можно просто перемещать и всячески им манипулировать.
Замечательно!*respekt*