Контролируется ли сглаживание текста кодом или оно встроено? Я хочу взять файл swf, созданный кем-то другим, найти весь текст в файле swf и изменить все режимы сглаживания с анимации на удобочитаемость. А в as3 так работает? Я, честно говоря, еще не пробовал никакого сглаживания в коде.
Flash AS3, контролируется ли сглаживание текста кодом?
Ответы (1)
вы можете установить antiAliasType текстового поля на «расширенный», что дает вам точный контроль над резкостью и толщиной. однако шрифты должны быть встроенными (в том числе: для текстового поля должно быть задано значение embedFonts, значение true, объекты TextFormat должны иметь свойства шрифта, точно равные fontName встроенного шрифта, а шрифты должны быть уже скомпилированы). так технически «возможно ли это?» - да. будет ли он работать так, как вы хотите? нет, если вы не планируете работать с swiff, который, как вы знаете, уже использует встроенные шрифты. тогда вам нужно будет получить все текстовые поля из загруженного swiff (вы можете использовать что-то вроде этого: http://upshots.org/?p=107, затем используйте array.filter для возврата только объектов TextField), затем примените свою логику.
РЕДАКТИРОВАТЬ: добавление образца кода
// assuming you're using the DisplayList class linked above
var request:URLRequest = new URLRequest("textfields.swf");
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler, false, 0, true);
loader.load(request);
function completeHandler(event:Event):void{
var content:DisplayObjectContainer = event.target.loader.content as DisplayObjectContainer;
addChild(content);
var children:Array = new DisplayList(content);
children = children.filter(function(item:Object, index:int, array:Array):Boolean {
return item is TextField;
});
children.forEach(function(item:Object, index:int, array:Array):void {
var textfield:TextField = item as TextField;
textfield.antiAliasType = AntiAliasType.ADVANCED;
textfield.sharpness = 100;
textfield.thickness = 100;
});
}
просто запустил быстрый тест - работает как описано.