答案 0 :(得分:3)
首先,您必须在SkinnableComponent中指定所谓的Designer-Developer Contract。 然后,您应该等待组件完成其实例化以访问其外观部件。
在您的特定情况下,您可以通过以下方式更改代码:
<?xml version="1.0" encoding="utf-8"?>
<s:SkinnableComponent xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark" skinClass="skins.brushedSkin"
xmlns:mx="library://ns.adobe.com/flex/mx">
<fx:Script>
<![CDATA[
import mx.controls.TextInput;
[SkinPart(required="true")]
public var input:TextInput;
private var txt:String;
public function setText(s:String) {
txt = s;
if (initialized)
input.text = txt;
}
]]>
</fx:Script>
</s:SkinnableComponent>
然后确保你的皮肤类包含以下声明(可能你只需要将 msg -TextInput重命名为输入):
<s:TextInput id="input"/>