Просмотр полной версии : трансформация текста(программно)
Nata_cher
09.08.2008, 13:52
Есть мувик, в котором находится TextField.
Как программно сделать трансформацию текста?
Какого рода трансформацию-то?
Nata_cher
09.08.2008, 15:11
Какого рода трансформацию-то?
необходимо сделать отображение текста относительно горизонтальной оси
пробовал делать
import flash.geom.Matrix;
var matrix=my_mc.transform.matrix;
matrix.b=0.1; // scew X
matrix.c=0.5; // scew Y
my_mc.transform.matrix=matrix;
но текст пропадает(может работает только с image?)
Ну, так наверное шрифт системный... нужно встроить.
Alex Lexcuk
10.08.2008, 10:20
Можно быстро сделать BitmapData и все пойдет
import flash.geom.Matrix;
import flash.filters.*;
var bd:BitmapData
= new BitmapData(my_mc.width, my_mc.height, true, 0x00000000);//width,height,transparent,color
var bm:Bitmap = new Bitmap(bd);//экранная подложка для BitmapData
bd.draw(my_mc,/*matrix*/null,/*colorTransform*/null,/*blendMode*/null,/*clipRect*/null,
/*smoothing*/true);
my_mc.addChild(bm);
var matrix=my_mc.transform.matrix;
matrix.b=0.1; // scew X
matrix.c=0.5; // scew Y
my_mc.transform.matrix=matrix;
Alex Lexcuk, и кто Вас научил так программить? Только других этому не нужно учить.
Nata_cher, поищите на форуме, ключевое слово - Embed.
Или можно наложить фильтр с нулевыми параметрами, например, BlurFilter.
Alex Lexcuk
10.08.2008, 17:28
Alex Lexcuk, и кто Вас научил так программить? Только других этому не нужно учить.
Nata_cher, поищите на форуме, ключевое слово - Embed.
Или можно наложить фильтр с нулевыми параметрами, например, BlurFilter.
например, BlurFilter.
Я уже пробовал так делать давным давно - нифига... не работает.
А что плохого в верхнем коде???
Внедренный шрифт только увеличивает размер swf файла и все... Как его встроить в AS3.0 swf файл никто не знает и искать тут нечего.
> А что плохого в верхнем коде???
Зачем использовать графику если нужен текст?
Что больше весит текстовый документ или файл .bmp с тем же текстом?
> Как его встроить в AS3.0 swf файл никто не знает и искать тут нечего.
Я всегда использую Embed-шрифты и у меня все прекрасно работает.
Или Вы думаете, что разработчики Adobe допустят такой серьезный баг в их продукте?
Alex Lexcuk
10.08.2008, 18:06
>>или файл .bmp с тем же текстом?
Графика генерируется программно и места в файле не занимает.
Ладно подскажу как внедрить шрифт, Сенсация!!!
На нарисованном текстовом поле вызываем свойства, там есть
Панелька со списком там по умолчанию
anti-alias for animation или еще что нибуть...(неважно)
Клацаем на нее и выбираем Use device font потом
anti-alias for readability
И появляется запрос нужно внедрение шрифта...Embed
Нажимаем все All
Ну ничего флешка будет весить 230 кБ против моих битмап 3 кБ
зато быдет работать
import flash.geom.Matrix;
var matrix=my_mc.transform.matrix;
matrix.b=0.1; // scew X
matrix.c=0.5; // scew Y
my_mc.transform.matrix=matrix;
> Графика генерируется программно и места в файле не занимает.
А то, сколько оперативной памяти занимает Ваша флешка Вас не волнует?
> Ну ничего флешка будет весить 230 кБ против моих битмап 3 кБ
А зачем All, отметьте только нужные.
Конечно Embed-шрифты будут добавлять немного веса к файлу, но в итоге несколько одинаковых символов в ОЗУ будут занимать гораздо меньше места, чем в Вашем предыдущем методе.
Kamchatka
10.08.2008, 18:52
Кстати наложение тривиального BlurFilter отлично работает.
Alex Lexcuk
10.08.2008, 22:58
>>Кстати наложение тривиального BlurFilter отлично работает.
Ни фига...
Рисуем что нибуть делаем динамик текст филд, пишем там прикол
Обводим все мышкой F8 мовие клип
Инстанс имя my_mc
код
import flash.geom.Matrix;
my_mc.filters = [new BlurFilter(4,4,1)];
var matrix=my_mc.transform.matrix;
matrix.b=0.1; // scew X
matrix.c=0.5; // scew Y
my_mc.transform.matrix=matrix;
ctrl+enter и что?
Чтонибуть нарисованное отображается а текста нет...
Или я что нибуть неправильно делаю?
>>Про All
неужели вы думаете что все флешевские шрифты весят 230 кБ
All - наверно означает все используемые, т.к. я использую один шрифт, то он один и внедряется, если выбрать из многочисленного списка шрифтовых групп не тот шрифт, то ничего вообще не отобразится.
Felicast
10.08.2008, 23:24
all - относится к символам. это означает, что вы ембедите все символы шрифта. если вам этого не нужно (что чаще всего и бывает), вам незачем ембедить все, можно выбрать те, которые вы реально используете (латиницу, кириллицу, цифры и знаки).
my_mc.filters = [new BlurFilter(4,4,1)];
зачем у вас квадратные скобки?
Alex Lexcuk
11.08.2008, 01:00
>>зачем у вас квадратные скобки?
Потому, что это массив.
Это строчка из Adobe Flash Help
Felicast
11.08.2008, 11:29
у меня вот так
txt.filters = new Array(new GlowFilter(0, 0, 0, 0));
работает просто наипрекраснейшим образом
//non-standard:
txt.filters = new Array(new GlowFilter(0, 0, 0, 0));
//standard:
txt.filters = [new GlowFilter(0, 0, 0, 0)];
Рекомендуемый синтаксис для создания массивов именно квадратные скобки. Есть довольно много людей, которые считают такую форму записи не правильной, но в общем случае, именно так надо писать, а не так как вы =)
BlooDHounD
11.08.2008, 12:51
wvxvw, ты не прав.
//non-standard:
txt.filters = new Array(new GlowFilter(0, 0, 0, 0));
//standard:
txt.filters = [new GlowFilter(0, 0, 0, 0)];
Рекомендуемый синтаксис для создания массивов именно квадратные скобки. Есть довольно много людей, которые считают такую форму записи не правильной, но в общем случае, именно так надо писать, а не так как вы =)
Краткое объявление массивов актуально для сложных и трудоемких вычислений с целью сокращения количества действий. В остальных случаях такое объявление не OOP way.
wvxvw, ты не прав.
Ну, вот, млин, ну вот чего бы я спорил! =)
Существует нормативный документ:
http://opensource.adobe.com/wiki/display/flexsdk/Coding+Conventions#CodingConventions-LanguageUsage
милости прошу к ознакомлению. Если вы оформляете код не в соответствии с соглашениями - ваше право, я же постом выше и сказал, что есть много людей, кому такая запись не нравится. Но есть стандарты, и есть личное мнение.
BlooDHounD
11.08.2008, 17:23
wvxvw, это не соглашение. я с ним не соглашался. и ещё 99.999999999% флэшеров с ним не соглашались. в этом соглашение дырка на дырке. то что с ним согласилась адаба, мне как глубоко пофигу. то что ты назвал "стандартом" - всего лишь, рекомендации идиота, который не может проследить за тем, что бы в их продукте по этим "стандарт" писали. к тому же рекомендации не для АС3 языка в целом, а для флекс-фреймворка. а эта странная рекомендация, которая выделяет массивы в синтаксическую аномалию, вообще опустила авторитет индусов в моих глазах.
Существует нормативный документ:
Первое же предложение:
This document lays out the coding standards for writing open-source Flex framework components in ActionScript 3.
Выделенного достаточно для того, чтобы понять, что это не всеобщее соглашение, а лишь описание, как правильно оформлять код компонентов для Flex-фреймворка и всё.
Ну, слушай, ну так напиши свой, "правильный", и может Адоби с ним согласятся =) Я абсолютно не шучу, мне этот документ тоже не нравится, как пример - оформление switch
для тех, кто не в курсе, следуя бумажке надо писать так:
switch (foo)
{
case "a":
{
a = b;
}
case "b":
{
b = a;
break;
}
} И где они только такое видели... =/ *Прям ASCII-art какой-то :) *
Но факт остается фактом - ничего другого нет.
__etc:
Ну, а есть альтернативы? Никаких других документов по этому поводу ни Адоби, ни кто вообще никогда не публиковал.
BlooDHounD
11.08.2008, 18:43
wvxvw, ну ты же дружишь со здравым смыслом? зачем тебе такие документы?
Никаких других документов по этому поводу ни Адоби, ни кто вообще никогда не публиковал.
http://www.google.ru/search?hl=ru&q=coding+conventions&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr=&aq=0&oq=coding+conve
__etc:
Ну, а что я там должен был увидеть? Для АС нету ничего, кроме тех, которые мы тут обсуждаем. А то, что они существуют для других языков - так я как бы в курсе =) Просто, для разных языков они разные... ну, это как бы и понятно, синтаксис ведь тоже разный =/
BloodHounD:
Ну, как же зачем? Зачем в принципе нужны такие документы, я думаю объяснять не нужно?
Мое мнение, что лучше хоть какие-то, чем никаких вообще. Т.как есть один универсальный источник, с которым любой в любое время может сверится. Ты же не перестанешь использовать SoundMixer, например, изза того, что он неудобный и бажный? =)
Как его встроить в AS3.0 swf файл никто не знает
O_o Значит я - шаман. Я знаю :))
А если хорошо попросите - даже вышлю вам класс FontManager который даже умеет подгружать, ембендить шрифт из внешних файлов :)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.