ApplyElementUserStyleOperation is deprecated with TLF 2.0. But I can't find a way to remove a userStyle without it. If I try to use ApplyFormatToElement with a TextLayoutFormat, it won't clear userStyles set to "undefined", just as it won't clear other styles.
Any suggestions? My code is working now using ApplyElementUserStyleOperation, but it always feels wrong to use deprecated methods.
No, that doesn't work. Or at least, ClearFormatOnElementOperation doesn't work for clearing userStyles.
The below method in ClearFormatOnElementOperation does the job. The problem is that TextLayoutFormat.description object which it iterates on does not contain userStyles as far as I can see.
public override function doOperation():Boolean
{
var targetElement:FlowElement = getTargetElement();
adjustForDoOperation(targetElement);
_undoStyles = new TextLayoutFormat(targetElement.format);
if (_format)
{
var newFormat:TextLayoutFormat = new TextLayoutFormat(targetElement.format);
// this is fairly rare so this operation is not optimizied
for (var prop:String in TextLayoutFormat.description)
{
if (_format[prop] !== undefined)
newFormat[prop] = undefined;
}
targetElement.format = newFormat;
}
return true;
}
North America
Europe, Middle East and Africa
Asia Pacific