Я создаю пользовательский компонент TextInput, который будет определять состояние «ошибка». Я расширил класс TextInput, чтобы изменить состояние на «error», если длина свойства errorString больше 0. В классе скина я определил состояние «error» и добавил некоторую логику для определения размера и положения объекта. Значок ошибки. Однако, если у меня есть этот код в то же время, я использую свойство «includeIn» в теге растрового изображения, я получаю ошибку представления дизайна. Если я либо А) только включаю этот код без установленного свойства "includeIn", это работает, либо Б) не включает код для установки размера и положения иконки и использует только свойство "includeIn", это работает. Есть идеи, что может вызывать проблему с представлением дизайна, когда я одновременно использую свойство "includeIn" и код размера / позиции значка?
Класс TextInput:
package classes {
import spark.components.TextInput;
public class TextInput extends spark.components.TextInput {
[SkinState("error")];
public function TextInput() {
super();
}
override public function set errorString( value:String ):void {
super.errorString = value;
invalidateSkinState();
}
override protected function getCurrentSkinState():String {
if (errorString.length>0) {
return "error";
}
return super.getCurrentSkinState();
}
}
}
Текстовый файл TextInput:
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
{
//THIS IS THE CODE THAT SEEMS TO BE CAUSING THE PROBLEM
if(getStyle("iconSize") == "large") {
errorIcon.right = -12;
errorIcon.source = new errorIconLg();
} else {
errorIcon.right = -5;
errorIcon.source = new errorIconSm();
}
super.updateDisplayList(unscaledWidth, unscaledHeight);
}
</fx:Script>
<s:states>
<s:State name="normal"/>
<s:State name="disabled"/>
<s:State name="error"/>
</s:states>
//If I remove the problem code above or if I take out the includeIn
//property here, it works
<s:BitmapImage id="errorIcon" verticalCenter="0" includeIn="error" />
</s:SparkSkin>