14 марта 2011 г.

Пару заметок о работе с текстом в Actionscript и о Blackberry AIR SDK

Привет всем! К сожалению, тематику блога решил сделать более разнообразной, т.к. писать в той узкой области, о которой заявил с самого начала, представляется весьма трудным: публикации в голове рождаются реже, чем происходит процесс Веселой разработки :-)

Недавно писал приложение под Blackberry, используя Blackberry AIR SDK.
Стоит заметить, что с текстом я почти не работал во Adobe Flash и наткнулся на такую проблему: если обычный текст (TextField) повернуть, указав ему свойство rotation, то он перестаёт отображаться.


Также обнаружил такую проблему с Blackberry AIR SDK: неправильно отображаются картинки в приложении, а именно получают неверный масштаб и непонятно сдвигаются.


Как заэмбедить, подключить шрифт в Actionscript, Flash
В классическом Adobe Flash это проблема решается через embedding шрифта в приложение. Вот пример класса, который использует embedded шрифт:



package views
{
import flash.display.MovieClip;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;

public class GameTextView extends MovieClip
{
[Embed(source="assets/ARIAL.TTF", fontFamily="Arial", 
fontWeight= "light", fontStyle = "italic", mimeType="application/x-font-truetype")]
private var MyFont:String;

public function addTextFieldOnStage():void {
var defaultTextFormat:TextFormat = new TextFormat();
defaultTextFormat.color = 0x6d3832;
defaultTextFormat.size = 18;
defaultTextFormat.font = "Arial";


var field:TextField = new TextField();


field.embedFonts = true;


field.width = 112;
field.height = 112;
field.autoSize = TextFieldAutoSize.CENTER;
field.selectable = false;


field.x = 100;
field.y = 100;


field.multiline = true;


field.defaultTextFormat = defaultTextFormat;
field.setTextFormat(defaultTextFormat);
field.rotation = 90;
this.addChild(field);
}
}
}



Как повернуть текст в ActionScript
Код, показанный выше, позволяет вращать текст, при этом он будет корректно отображаться флешом.

Однако, как показала практика, для BlackBerry SDK всё немного иначе.

Во-первых, нужно добавить в метатег поле  embedAsCFF="false", а во вторых в Project Properties->ActionScript Compiler (в параметрах компиляции проекта) нужно добавить -managers flash.fonts.AFEFontManager

Вот после этого шрифт будет нормально цепляться и текст можно будет вращать в Blackberry AIR SDK.

Как сделать приложение для Blackberry, чтобы картинки работали правильно
Если вы выполнили все шаги вот отсюда: http://maxpavlov.blogspot.com/2011/02/air-blackberry-playbook.html, то до создания своего первого приложения осталось совсем чуть-чуть!
Главный класс приложения, когда создаём ActionScript проект следует наследовать от MovieClip, а в заголовок класса добавить следующий метатег:

[SWF(width="1024", height="600", backgroundColor="#cccccc", frameRate="30")]
public class Main extends MovieClip...

Иначе у вас возникнут проблемы с позиционированием объектов на stage главного MovieClip'а.

Отправить комментарий