Внедрение внешних ресурсов в конечный SWF

28 октября 2007 Нет комментариев

Прочитав статью "Font Embedding in AS3" Майка Джонсона (Mike Johnson) я решил рассказать о том, как создавать и использовать аналоги элементов библиотеки без использования Flash IDE... но обнаружил, что Алексей «Vooparker» Аникутин уже "намусорил" в одном из авторитетнейших для меня блоге - Garbage Collector.

Итак, всем читать статью "Включение файлов в SWF в виде байтовой последовательности".

Alternativa Game — потрясающий 3D движок

26 октября 2007 2 комментария

Многие разработчики профессионально используют возможности ActionScript 3.0 и FlashPlayer 9 API, но Антон Волков и Ко на сегодняшний день впереди планеты всей! Смотрите и удивляйтесь. Демо-версия движка Alternativa3D…

null

Основные особенности:

  • Трёхмерная геометрия и 3D-спрайты. Здания и ландшафт выполняются в “честном” 3D, объекты со сложной геометрией — в виде спрайтов, в т.ч. многофазных.
  • Система освещения, включающая направленные и точечные источники света. Изменение времени суток, рассеянный и солнечный свет, автоматическое затенение в углах, динамические тени, включая тени от спрайтов.
  • Настраиваемое качество текстур и освещения (при отсутствии аппаратной поддержки 3D-графики во Flash это особенно важно).
  • Низкая нагрузка на процессор (исключая моменты изменения освещения и вращения камеры, что происходит нечасто и не критично для игры).

Ждем продолжения. Хотелось бы войти в группу закрытого бета-тестирования. 😉

Categories: Графика Tags: ,

Скоро Powerflasher порадует нас выходом FDT 3.0!!!

15 октября 2007 Нет комментариев

Для тех, кто не знает, FDT - это наиболее удобный иснструмент для разработки Flash приложений на данный момент. FDT 2.0 позволял создавать приложения с использованием AS2, и вот появилась информация о скором (со дня на день) выпуске новой версии этой среды разработки.

Этот релиз будет представлен в 3-х вариантах. Все три версии дополняют друг друга и в любой момент могут обновлены до более полной версии. С самого начала будут выпущены версии Basic и Professional. До версии Enterprise можно будит апгрейдится позже, с внушительной скидкой (как обещают в самом Powerflasher).

А, вот еще что... Для опенсорсных разработчиков FDT остается бесплатным (более подробную информацию обещали раскрыть буквально на днях).

Статья “Советы изучающим ActionScript 3.0″ от Emmy Huang

10 октября 2007 Нет комментариев

Emmy Huang написала статью "Tips for learning ActionScript 3.0" еще в 2006 году, но многое из нее будет полезно и сейчас. Особенно тем, кто только начинает изучать язык. Итак, я взял на себя смелость и начал перевод этой статьи. Возможно, при помощи наших старших товарищей, мы все вместе сможем дополнить список советов собственными.

Свет, камера, ActionScript 3.0!

8 октября 2007 9 комментариев

Проанализировав свои предыдущие публикации я понял, что как то не с того начал. Может быть стоило рассказать о языке с самого начала? Но, лучше поздно, чем... очень поздно 🙂

В целях знакомства приведу выдержки из публикации Аниты Рамасвами

Что же такое ActionScript?

ActionScript 3.0 - это объектно-ориентированный язык программирования, обладающий большими возможностями и знаменующий собой важный шаг в эволюции Flash Player Runtime.

История

ActionScript - это язык программирования, основанный на ECMAScript и используемый для написания сценариев кинофрагментов и приложений на Adobe Flash. Впервые ActionScript 1.0 (его полностью программируемая версия) появился в составе Flash 5. Во Flash 6 было добавлено несколько встроенных функций, а также появилась возможность осуществлять более эффективное программное управление анимированными элементами. Во Flash 7 был введен ActionScript 2.0, который был строго типизирован и предоставлял возможности программирования, связанные с использованием классов, такие как наследование, интерфейсы и строгая типизация данных. Читать далее...

Живой Flex — новый проект ShaggySmile-а

7 октября 2007 Нет комментариев

Многоуважаемый ShaggySmile, один из популярнейших авторов русскоязычного Flash комьюнити, запустил новый проект под названием Life.FLEX. Формат публикаций - конкретика, никакого мусора. В основном переводы. Очень полезный ресурс. Советую как начинающим так и профессионалам.

Вот например Flex 2 и Flash Media Server - пример загрузки потокового MP3

Categories: Новости Tags:

Растрирование текста или “Per aspera — ad astra”

6 октября 2007 10 комментариев

Под впечатлением анонса нового Flash Player-а под кодовым именем "Astra" я вспомнил свою старую публикацию, в которой я демонстрировал эффект появления текста из звездочек. Но там это было реализовано под ActionScript 2. И вот решил я сделать что-то подобное под ActionScript 3.

Давайте смотреть что получилось.

Сначала создаем класс, реализующий эффект собирания текстовой строки из точек:

package
{
	import flash.display.BitmapData;
	import flash.display.Sprite;
	import flash.geom.Point;
	import flash.text.TextField;
	import flash.text.TextFormat;

	public class StarText extends Sprite
	{
		public function StarText(text:String)
		{ // передаем в виде параметра текстовую строку
			var textWidth:int
			var textHeight:int
			var tf:TextField = new TextField();
			var bmp:BitmapData;
			var tformat:TextFormat = new TextFormat("_sans", 12); // задаем формат текста
			tf.autoSize="left";	// текстовое поле будет автоматически расширяетmcz
			tf.text=text; // заполняем текстовое поле текстом
			tf.setTextFormat(tformat); // присваеваем формат текста

			bmp = new BitmapData(tf.width, tf.height, false); // создаем растр с размерами текста
			bmp.draw(tf); // растрируем текст
			textWidth = bmp.width; // ширина растровой картинки
			textHeight = bmp.height; // высота растровой картинки
			for (var x:int=0; x

Теперь собственно "Звездочка", которая летит-летит и прилетает куда нужно.

package {
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.geom.Point;

	public class Star extends Sprite {
		private var starCoord:Point;
		public function Star(coord:Point):void { // в параметрах передаем координаты
			starCoord=coord;		// в которые наша точка дожна прилететь
			var bmpStarSrc:BitmapData = new BitmapData(1,1,false,0x00ff00); // рисуем точку зеленую
			var bmpStar:Bitmap = new Bitmap (bmpStarSrc);
			bmpStar.x = Math.random()*300-Math.random()*150; // помещаем в случайные координаты
			bmpStar.y = Math.random()*300-Math.random()*150;
			bmpStar.addEventListener(Event.ENTER_FRAME, fly); // добавляем вызов периодической функции
			addChild(bmpStar); // возвращаем созданый объект
		}
		private function fly(e:Event):void { // эта функция будет двигать точку в нужные координаты
			var trgt = e.target;
			var tox:Number = (trgt.x - starCoord.x)/16; // вычисляем смещение
			var toy:Number = (trgt.y - starCoord.y)/16;
			if (Math.abs(tox)>0.5 || Math.abs(toy)>0.5) { // если смещение не очень маленькое
				trgt.x-=tox; // смещаем точку
				trgt.y-=toy;
			}
			else // иначе
			{
				trgt.removeEventListener(Event.ENTER_FRAME, fly); // убираем повторение

				trgt.x=starCoord.x; // выставляем точку в конечные координаты
				trgt.y=starCoord.y;

			}
		}
	}
}

теперь базовый класс:

package {
	import flash.display.Sprite;
	public class Main extends Sprite
	{
		public function Main()
		{
			var st:StarText = new StarText("БОЛЬШАЯ ИСТОРИЯ СОЗДАНИЯ МАЛЕНЬКОГО ПРИЛОЖЕНИЯ")
			st.x=100
			st.y=170
			addChild(st)
		}
	}
}

ну с ним, наверное, все понятно?... если нет, милости просим в комментарии 😉

Использование символов из библиотеки

30 сентября 2007 8 комментариев

Некоторые программисты напрочь отвергают использование Flash IDE за неудобный редактор кода, который на самом деле не очень подходит для написания больших приложений с использованием элементов пользовательского интерфейса (GUI).

Тем не менее рано или поздно каждому программисту приходится работать с SWF файлами ( с так называемым "дизайном", который так не любят программисты 🙂 ), которые были созданы именно во Flash CS3 IDE. И очень часто возникают трудности в работе с такими флэшками из-за их несовместимости с "правильным" кодом.

Итак. Постановка задачи: Нужно создать два символа фигур (квадрат и круг) в библиотеке и назначить им одинаковую модель поведения. То есть любой из этих символов, добавленный на сцену, должен при нажатии на них кнопкой мышки переместиться на передний план и "прилипнуть" к курсору. При отпускании мышки - "отлипнуть" от курсора. Короче говоря, когда посмотрите результат - поймете что я имел в виду 😀

Первое, что мы сделаем, это создадим класс, описывающий поведение наших фигур.

package {
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.events.MouseEvent;

	class Figure extends MovieClip {
		public function Figure() {
			addEventListener(MouseEvent.MOUSE_DOWN, StartDrag);
			addEventListener(MouseEvent.MOUSE_UP, StopDrag);
		}
		private function StartDrag(e:Event) {
			var trgt = e.target
			var mc_parent = trgt.parent
			mc_parent.removeChild(trgt)
			mc_parent.addChild(trgt)
			trgt.startDrag();
		}
		private function StopDrag(e:Event) {
			e.target.stopDrag();
		}
	}
}

Разберемся по порядку

импортируем необходимые библиотеки:

package {
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.events.MouseEvent;

Объявляем класс и инициирующий метод. При создании экземпляра класса к нему добавляются два слушателя событий, реагирующих на нажатие и отпускание левой кнопки мыши:

	class Figure extends MovieClip {
		public function Figure() {
			addEventListener(MouseEvent.MOUSE_DOWN, StartDrag);
			addEventListener(MouseEvent.MOUSE_UP, StopDrag);
		}

При нажатии левой кнопки мыши вызывается функция StartDrag (не путать с методом startDrag) в которой мувик удаляется со сцены, потом снова добавляется на нее (таким образом перемещается наверх) и включается startDrag()
При отпускании левой кнопки мыши вызывается функция StopDrag

		private function StartDrag(e:Event) {
			var trgt = e.target
			var mc_parent = trgt.parent
			mc_parent.removeChild(trgt)
			mc_parent.addChild(trgt)
			trgt.startDrag();
		}
		private function StopDrag(e:Event) {
			e.target.stopDrag();
		}
	}
}

Теперь нужно создать два символа и присвоить им класс Figure в роли базового. Для этого рисуем на сцене круг, и превращаем его в символ нажатием клавиши [F8]

Теперь подобным же образом создаем квадрат.

Следующий шаг - создаем базовый класс мувика в котором берем символы из библиотеки и помещаем их на сцену:

package {
	import flash.display.Sprite;

	public class Main extends Sprite {
		public function Main() {
			var a:Square = new Square();
			var b:Circle = new Circle();
			addChild(a);
			addChild(b);
		}
	}
}

Помощь по Flash по-русски

29 сентября 2007 1 комментарий

Как-то кстати вышел хелпер по флэшу на русском языке.

Пока что не весь, но тем не менее для начинающих изучать - самое то.

Я не одинок. Проект “AS3 и Flex для самых маленьких”…

29 сентября 2007 2 комментария

Сегодня узнал, что я не одинок в своих побуждениях. Представляю Вам проект "AS3 и Flex для самых маленьких". Молодой человек (или девушка, непонятно) вполне доходчиво и подробно публикует переводы туториала. Желаю удачи автору и надеюсь на сотрудничество.