Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Блоги > ps_spectre

Рейтинг: 5.00. Голосов: 4.

Используем фичи flash player 10.2 или 11.0 во FlashIDE CS5

Запись от ps_spectre размещена 08.03.2011 в 21:49

Вначале писал ответ на форум, но решил вынести отдельной заметкой в блог. (чтобы не потерялось)

Содержание:


- введение
- playerglobal.swc где взять.
- внедрение поддержки фич нового флеш плеера во FlashIDE. (правим конфиги)
- пишем код, который использует custom cursor из flash player 10.2

Введение.

Итак, нам понадобилось во flash ide cs5 писать код под новые плеера. По-умолчанию неизмененный flash cs5 не поддерживает во время компиляции новые типы/классы из новых плееров (>10.1) Например MouseCursorData из 10.2 плеера.
Что нам может потребоваться чтобы исправить это?
В первую очередь нам надо взять последний (нужный) playerglobal.swc из последнего FlexSDK. Вторым шагом нам надо подправить конфиги Flash IDE (CS5), чтобы появился выбор в опциях, под какой плеер мы компилируем проект.


Playerglobal.swc где взять?

Для того, чтобы взять playerglobal.swc мы должны скачать нужный flexSDK.
1. Качаем с adobe labs свежий SDK (на данный момент 4.5.0.19786)
ссылка на 4.5 SDK (Hero)
2. расспаковуем в %sdk_path%
3. переходим %sdk_path%\frameworks\libs\player\ дальше в зависимости от какого флешплеера нам надо .swc.
Код:
 (пример: C:\flexsdk\flex45_19786\frameworks\libs\player\10.2\playerglobal.swc)
4. копируем куда-нибудь этот *swc. (чтобы под рукой был)

Внедрение поддержки фич нового флеш плеера во FlashIDE. (правим конфиги)

Теперь нам надо подправить конфиги флеш ИДЕ.
Для этого переходим в %adobe_cs5_path%\Common\Configuration\ActionScript 3.0\
Код:
(пример: C:\Program Files (x86)\Adobe\Adobe Flash CS5\Common\Configuration\ActionScript 3.0\)
создаем папку FP10.2 или FP11 (FP10, FP9 по-умолчанию там есть) кладем туда наш playerglobal.swc (эту папку будем использовать в путях конфиг файла)

Дальше переходим в
%adobe_cs5_path%\Common\Configuration\Players\
Код:
(пример C:\Program Files (x86)\Adobe\Adobe Flash CS5\Common\Configuration\Players\)
делаем копию файла

FlashPlayer10_1.xml


переменовуем копию в
FlashPlayer10_2.xml
или
FlashPlayer11.xml
в зависимости от того, какой .swc мы взяли (от какого плеера)

дальше открываем текстовым редактором этот файл и меняем несколько полей в этом xml файле
Код:
<players>
  <player id="FlashPlayer10" version="10" asversion="3">
  <name>Flash Player 10</name>
  ...
   <playerDefinitionPath ... as3="$(AppConfig)/ActionScript 3.0/FP10/playerglobal.swc" />
  ...
 </players>
меняем на (в случае 10.2 плеера)
Код:
 
<players>
  <player id="FlashPlayer10.2" version="11" asversion="3">
  <name>Flash Player 10.2</name>
  ...
   <playerDefinitionPath ... as3="$(AppConfig)/ActionScript 3.0/FP10.2/playerglobal.swc" />
  ...
 </players>
меняем на (в случае 11.0 плеера)
Код:
<players>
  <player id="FlashPlayer11" version="13" asversion="3">
  <name>Flash Player 11</name>
  ...
   <playerDefinitionPath ... as3="$(AppConfig)/ActionScript 3.0/FP11/playerglobal.swc" />
  ...
 </players>
и сохраняем изменения, разумеется.

Подготовка конфигов завершена, можно запускать Flash IDE.
В опциях проекта (там где publish) у нас появились новые опции. (player: flashplayer 10.2, flashplayer 11)

Пишем код, который использует custom cursor из flash player 10.2


Теперь проверим новые фичи.
Открываем статью
adobe: native mouse cursors
читаем, думаем, копируем код.

Открываем FlashIDE CS5
Создаем новый as3 проект.
На сцене рисуем не больше чем 32 на 32 картинку нашего курсора (точка привязки 0,0)
Делаем как MovieClip, добавляем в библиотеку, выбираем экспорт в первый фрейм, даем имя, например SimpleCursor.
В опциях publish выбираем player: flashplayer 10.2
Создаем наш main class (document class) под названием CustomCursor

вот его код

Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.display.MovieClip;
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.geom.Point;
	import flash.ui.*;	
	import flash.events.Event;
 
	public class CustomCursor extends Sprite
	{
		public function CustomCursor()
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
 
 
		}
		private function init(e:Event=null):void
		{
			if (e) removeEventListener(Event.ADDED_TO_STAGE, init);
 
			var mc:MovieClip = new SimpleCursor();			
			var bd:BitmapData = new BitmapData(mc.width, mc.height, true, 0);
			bd.draw(mc);
 
			// Create a MouseCursorData object
			var cursorData:MouseCursorData = new MouseCursorData();
			// Specify the hotspot 
			var cx:int = Math.ceil(bd.width * 0.5);
			var cy:int = Math.ceil(bd.height * 0.5);
			cursorData.hotSpot = new Point(cx, cy);
			// Pass the cursor bitmap to a BitmapData Vector 
			var bitmapDatas:Vector.<BitmapData> = new Vector.<BitmapData>(); 
			// Create the bitmap cursor 
			// The bitmap must be 32x32 pixels or smaller, due to an OS limitation			
 
			// Pass the value to the bitmapDatas vector 
			bitmapDatas.push(bd);
			// Assign the bitmap to the MouseCursor object
			cursorData.data = bitmapDatas;
			// Register the MouseCursorData to the Mouse object with an alias 
			Mouse.registerCursor("myCursor", cursorData); 
			// When needed for display, pass the alias to the existing cursor property 
			Mouse.cursor = "myCursor";
 
		}
	}
}
Поскольку мы взяли новый playerglobal.swc то теперь не возникает ошибка компиляции.
Теперь мы можем делать publish и открывать во flash player 10.2 (например publish preview -> html)
Если используем правильный плеер (10.2+) то увидим что стандартный курсор заменен на наш, нарисованный.


Тоже самое с Molehill API , если мы взяли из под 11 плеера *.swc нужный и добавили конфиг под 11 плеер, то теперь мы можем компилить проекты во FlashIDE связанные с 3д графикой. (именно molehill api)
Ибо компилятору все равно, по-большому счету, какие классы Flash Player API юзать, т.к. они в самом рантайме флеш плеера присутствуют.

Конец.

в прикрепленных файлах *.swc от 10.2 плеера из 4.5.0.19786 флекса.
так же конфиг под 10.2 плеер.
Картинки к примеру.
И сам пример.
Изображения
Тип файла: png publish.png (47.8 Кб, 2510 просмотров)
Тип файла: png library.png (70.6 Кб, 2515 просмотров)
Тип файла: png settings.png (9.6 Кб, 2446 просмотров)
Вложения
Тип файла: zip playerglobal.zip (296.7 Кб, 352 просмотров)
Тип файла: zip FlashPlayer10_2_config.zip (1.1 Кб, 307 просмотров)
Тип файла: zip example_cs5_project.zip (7.1 Кб, 314 просмотров)
Всего комментариев 12

Комментарии

Старый 08.03.2011 22:26 dimarik вне форума
dimarik
 
Аватар для dimarik
Хорошая статья. Компилируем под любые плееры в CSx.
Старый 08.03.2011 23:21 NikosHope вне форума
NikosHope
Огромное спасибо за статью! Предлагаю запостить на хабр! Думаю многим будет интересно
Старый 09.03.2011 01:17 ps_spectre вне форума
ps_spectre
 
Аватар для ps_spectre
dimarik, спасибо.

NikosHope, мне пока на хабр не охота писать.
Старый 09.03.2011 13:57 samana вне форума
samana
 
Аватар для samana
Здорово, спасибо!!!
Старый 11.03.2011 14:44 Sintesis вне форума
Sintesis
 
Аватар для Sintesis
ps_spectre, есть-ли сейчас где-нибудь документация к последнему SDK? Или она появится только после всех тэстирований?
Старый 11.03.2011 16:28 ps_spectre вне форума
ps_spectre
 
Аватар для ps_spectre
Sintesis, не понял вопроса, чем это не устраивает?

http://help.adobe.com/en_US/FlashPla...ashplayer=10.2

или вот бета
http://help.adobe.com/en_US/FlashPla...ctionscript/3/

по 11 плееру документация отдельно ищется. (качается)
Обновил(-а) ps_spectre 11.03.2011 в 16:30
Старый 26.03.2011 17:50 Tails вне форума
Tails
 
Аватар для Tails
Эх придёться сносить CS3, неполучаеться в нём так сделать.
Старый 31.03.2011 12:10 vitalFriend вне форума
vitalFriend
Если выдает такую ошибку - в чем может быть причина?

VerifyError: Error #1014: Не удалось найти класс flash.ui::MouseCursorData.

at CustomCursor()
Старый 21.04.2011 16:01 justin_g вне форума
justin_g
 
Аватар для justin_g
Тоже самое: "Не удалось найти класс flash.ui::MouseCursorData."

Проблема в том, что FlashIDE CS5 использует свой флеш-плеер. Его версию можно проверить так:
Код AS3:
import flash.system.Capabilities;
 
trace(Capabilities.version);
trace(Capabilities.playerType);
У меня, например, показывает WIN 10,1,52,14, при этом в любом браузере по правому клику стоит 10.2...
Обновил(-а) justin_g 21.04.2011 в 17:18
Старый 20.07.2011 15:03 godligift вне форума
godligift
Проблема решается просто, копированием новых версий плеера в папку: \Adobe Flash CS5\Players\Debug
Старый 20.07.2011 15:12 godligift вне форума
godligift
Однако это хотя и меняет проблему с плеером, не решает проблему с 1014
Старый 12.10.2011 17:17 джонатан вне форума
джонатан
 
Аватар для джонатан
Так ка-же вшить 11-ый плеер во флеш? Скачал flex sdk 4.5.1.21328 (вроде как последний он сейчас), погнал по инструкции, и там тока по 10.2 плееру нашёл либу:

flex_sdk_4.5.1.21328\frameworks\libs\player\10.2

По 11-му нету нифига
 

 


Часовой пояс GMT +4, время: 00:00.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.