Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   трансформация текста(программно) (http://www.flasher.ru/forum/showthread.php?t=114798)

Nata_cher 09.08.2008 13:52

трансформация текста(программно)
 
Есть мувик, в котором находится TextField.
Как программно сделать трансформацию текста?

etc 09.08.2008 15:03

Какого рода трансформацию-то?

Nata_cher 09.08.2008 15:11

Цитата:

Сообщение от __etc (Сообщение 757194)
Какого рода трансформацию-то?

необходимо сделать отображение текста относительно горизонтальной оси

пробовал делать
Код:

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?)

wvxvw 09.08.2008 15:50

Ну, так наверное шрифт системный... нужно встроить.

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;


mre 10.08.2008 13:23

Alex Lexcuk, и кто Вас научил так программить? Только других этому не нужно учить.
Nata_cher, поищите на форуме, ключевое слово - Embed.
Или можно наложить фильтр с нулевыми параметрами, например, BlurFilter.

Alex Lexcuk 10.08.2008 17:28

Цитата:

Сообщение от mre (Сообщение 757282)
Alex Lexcuk, и кто Вас научил так программить? Только других этому не нужно учить.
Nata_cher, поищите на форуме, ключевое слово - Embed.
Или можно наложить фильтр с нулевыми параметрами, например, BlurFilter.

например, BlurFilter.
Я уже пробовал так делать давным давно - нифига... не работает.

А что плохого в верхнем коде???

Внедренный шрифт только увеличивает размер swf файла и все... Как его встроить в AS3.0 swf файл никто не знает и искать тут нечего.

mre 10.08.2008 17:40

Цитата:

> А что плохого в верхнем коде???
Зачем использовать графику если нужен текст?
Что больше весит текстовый документ или файл .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;


mre 10.08.2008 18:21

Цитата:

> Графика генерируется программно и места в файле не занимает.
А то, сколько оперативной памяти занимает Ваша флешка Вас не волнует?
Цитата:

> Ну ничего флешка будет весить 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));
работает просто наипрекраснейшим образом

wvxvw 11.08.2008 11:51

Код:

//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, ты не прав.

etc 11.08.2008 13:03

Цитата:

Сообщение от wvxvw (Сообщение 757392)
Код:

//non-standard:
txt.filters = new Array(new GlowFilter(0, 0, 0, 0));
//standard:
txt.filters = [new GlowFilter(0, 0, 0, 0)];

Рекомендуемый синтаксис для создания массивов именно квадратные скобки. Есть довольно много людей, которые считают такую форму записи не правильной, но в общем случае, именно так надо писать, а не так как вы =)

Краткое объявление массивов актуально для сложных и трудоемких вычислений с целью сокращения количества действий. В остальных случаях такое объявление не OOP way.

wvxvw 11.08.2008 15:36

Цитата:

Сообщение от BlooDHounD (Сообщение 757400)
wvxvw, ты не прав.

Ну, вот, млин, ну вот чего бы я спорил! =)
Существует нормативный документ:
http://opensource.adobe.com/wiki/dis...-LanguageUsage
милости прошу к ознакомлению. Если вы оформляете код не в соответствии с соглашениями - ваше право, я же постом выше и сказал, что есть много людей, кому такая запись не нравится. Но есть стандарты, и есть личное мнение.

BlooDHounD 11.08.2008 17:23

wvxvw, это не соглашение. я с ним не соглашался. и ещё 99.999999999% флэшеров с ним не соглашались. в этом соглашение дырка на дырке. то что с ним согласилась адаба, мне как глубоко пофигу. то что ты назвал "стандартом" - всего лишь, рекомендации идиота, который не может проследить за тем, что бы в их продукте по этим "стандарт" писали. к тому же рекомендации не для АС3 языка в целом, а для флекс-фреймворка. а эта странная рекомендация, которая выделяет массивы в синтаксическую аномалию, вообще опустила авторитет индусов в моих глазах.

etc 11.08.2008 17:42

Цитата:

Сообщение от wvxvw (Сообщение 757452)
Существует нормативный документ:

Первое же предложение:

Цитата:

Сообщение от Coding Conventions
This document lays out the coding standards for writing open-source Flex framework components in ActionScript 3.

Выделенного достаточно для того, чтобы понять, что это не всеобщее соглашение, а лишь описание, как правильно оформлять код компонентов для Flex-фреймворка и всё.

wvxvw 11.08.2008 18:03

Ну, слушай, ну так напиши свой, "правильный", и может Адоби с ним согласятся =) Я абсолютно не шучу, мне этот документ тоже не нравится, как пример - оформление switch
для тех, кто не в курсе, следуя бумажке надо писать так:
Код:

switch (foo)
{
        case "a":
                {
                        a = b;
                }

        case "b":
                {
                        b = a;
                        break;
                }

}

И где они только такое видели... =/ *Прям ASCII-art какой-то :) *
Но факт остается фактом - ничего другого нет.

__etc:
Ну, а есть альтернативы? Никаких других документов по этому поводу ни Адоби, ни кто вообще никогда не публиковал.

BlooDHounD 11.08.2008 18:43

wvxvw, ну ты же дружишь со здравым смыслом? зачем тебе такие документы?

etc 11.08.2008 19:25

Цитата:

Сообщение от wvxvw (Сообщение 757492)
Никаких других документов по этому поводу ни Адоби, ни кто вообще никогда не публиковал.

http://www.google.ru/search?hl=ru&q=...q=coding+conve

wvxvw 11.08.2008 20:21

__etc:
Ну, а что я там должен был увидеть? Для АС нету ничего, кроме тех, которые мы тут обсуждаем. А то, что они существуют для других языков - так я как бы в курсе =) Просто, для разных языков они разные... ну, это как бы и понятно, синтаксис ведь тоже разный =/

BloodHounD:
Ну, как же зачем? Зачем в принципе нужны такие документы, я думаю объяснять не нужно?
Мое мнение, что лучше хоть какие-то, чем никаких вообще. Т.как есть один универсальный источник, с которым любой в любое время может сверится. Ты же не перестанешь использовать SoundMixer, например, изза того, что он неудобный и бажный? =)

ulik 12.08.2008 14:18

Цитата:

Как его встроить в AS3.0 swf файл никто не знает
O_o Значит я - шаман. Я знаю :))
А если хорошо попросите - даже вышлю вам класс FontManager который даже умеет подгружать, ембендить шрифт из внешних файлов :)


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

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