如果您有两个textareas,其中一个旋转值除了0而另一个没有旋转值或值为0,并且您'标记'从一个w /旋转到一个w / out的焦点。 textArea w / out旋转周围的边框将旋转。如果将非旋转文本字段的旋转值设置为非零数字,甚至是0.01,则可以解决问题,这会导致文本渲染中出现大量其他问题,因此它不是解决方案。
我发现将focusThickness样式设置为0会移除边框,这是一个很好的解决方案但不是很好的解决方案,任何人都有更好的解决方案吗?以下是一些示例代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:VBox width="100%" height="100%">
<mx:TextArea id="source" width="100%" fontWeight="bold" fontSize="20" height="50" rotation="5" />
<mx:TextArea id="dest" width="100%" height="50" />
</mx:VBox>
以下是它的样子: alt text http://img.skitch.com/20091105-fftxukst1ncggynekatj6937nn.jpg
答案 0 :(得分:1)
这是一个扩展TextArea的类,并覆盖adjustFocusRect方法来修复此错误。
package
{
import flash.display.DisplayObject;
import flash.geom.Point;
import mx.controls.TextArea;
import mx.core.IFlexDisplayObject;
import mx.core.IInvalidating;
import mx.core.IProgrammaticSkin;
import mx.core.mx_internal;
import mx.managers.IFocusManager;
import mx.styles.IStyleClient;
use namespace mx_internal;
public class TextArea2 extends TextArea
{
override protected function adjustFocusRect(obj:DisplayObject = null):void
{
super.adjustFocusRect(obj);
var focusObj:IFlexDisplayObject = IFlexDisplayObject(getFocusObject());
if (focusObj)
{
if ( !rotation ) {
DisplayObject(focusObj).rotation = 0;
}
}
}
}
}