Главная > Анимация, Графика > А вместо сердца — пламенный мотор

А вместо сердца — пламенный мотор

Сегодня попробуем усложнить вчерашний пример, и вместо квадратика нарисуем сердечко. И... заставим его биться в такт нашему. Конечно, ваше сердце должно биться от восторга, как у меня...

Итак, приступим. Наш базовый класс Main будет выглядить вот так:

package {
import flash.display.Sprite;
import flash.display.Shape;
import fl.motion.Animator;
import fl.motion.MotionEvent;

public class Main extends Sprite {
	public var kv_animator:Animator;
 	public function Main() {
		var h = Heart(300,0xFF1010);
		addChild(h);// Добавляем Красное сердечко на основную сцену
		h.x=100;
		h.y=30;
		setAnim(h);
	}

 	public function Heart(w:Number, col:uint) {// Функция, рисующая квадрат
 		var heart:Shape = new Shape();
 		var Width=w;
 		with (heart.graphics) {
 			beginFill(col, 0.80);
 			moveTo(Width/2,Width/2);
 			curveTo(Width*0.75,0,Width,Width/2);
 			curveTo(Width,Width*0.75,Width/2,Width);
 			curveTo(0,Width*0.75,0,Width/2);
 			curveTo(Width*0.25,0,Width/2,Width/2);
 			endFill();
 		}
 		return heart;
 	}
 	private function setAnim(obj) {
var kv_xml:XML =

	
		
			
		
	
	
		
	
	
		
	
	
		
	
	
		
	
	
		
	
;

 			kv_animator = new Animator(kv_xml, obj);
	 		kv_animator.addEventListener(MotionEvent.MOTION_END,afterMotion);
 			kv_animator.play();
 		}
	 	function afterMotion(e:MotionEvent) {
 			e.target.play();
 		}
	}
}

В следующей публикации попробую рассказать как работает этот скрипт.

UPD: Посмотреть на результат можно здесь. Исходники здесь.

  1. 30 сентября 2007 в 01:49 | #1

    Т.к. сей код является пособием для начинающих, считаю недопустимым опускать типизацию в некоторых местах.
    Ах да, ещё методы и переменные с прописной называть тоже не стоило. ? вложенные функции — зло. ? что такое «kv_animator»? Аниматор квадрата? Помесь французского с нижегородским получается, разделенная подчеркиванием. Уж луч?е squareAnimator или heartAnimator.
    Потом ведь привыкнут и будут так писать, а мы их потом на работу не возьмем 🙂

  2. skif
    30 сентября 2007 в 01:53 | #2

    Спасибо за урок, но не мог бы ты выложить где-нибудь (или на мне мыло) CS3 классы, в частности fl.* пэкадж. А то у меня и Flash CS3 нету :-(, а скомпилять хочется.

  3. 30 сентября 2007 в 02:06 | #3

    не мог бы ты выложить где-нибудь (или на мне мыло) CS3 классы, в частности fl.* пэкадж. А то у меня и Flash CS3 нету :-(, а скомпилять хочется.

    не совсем понимаю причем тут CS3 классы, и даже не представляю что это такое.

    Может быть ты имел в виду AS3 классы? Но чем ты их буде?ь компилировать если у тебя их нет? Если хоче?ь — добро пожаловать в гуглталк — обсудим.

    Misha — yesutin@gmail.com

  4. 30 сентября 2007 в 11:59 | #4

    Т.к. сей код является пособием для начинающих, считаю недопустимым опускать типизацию в некоторых местах…

    Спасибо, Денис. Обязательно учту в следующий раз… просто я писал этот пост с надеждой вернуться к нему в рамках «работы над о?ибками» и «рефакторинга»…

  5. 29 февраля 2008 в 21:52 | #5

    Вкрно пособие для начинающих… Но всё-равно спс.

  1. 29 сентября 2007 в 06:42 | #1