时间:2010-07-26 16:21:48

标签: actionscript-3 flex4

1 个答案:

答案 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"/>