2011-11-07 8 views
0

SkinnableContainerに基づくカスタムコンポーネントがある場合、実行時にスキンに値を設定するにはどうすればよいですか?具体的には、maxWidth値とmaxHeight値を持つホワイトボードコンポーネントで、会話内のすべてのホワイトボードの最小の共有幅/高さを示します。Flex 4、コンポーネントスキンの変数をコンポーネントから設定

[Bindable] 
public var maxWhiteBoardWidth:Number; 
[Bindable] 
public var maxWhiteBoardHeight:Number; 

これらの値は、皮膚にストロークラインを使用して、会話内のすべての大きなホワイトボードの表面上のガイドラインを描画するために使用されています

<!-- smallest common denominator boundaries --> 
<s:Line left="300" top="0" bottom="0"> 
    <s:stroke> 
     <s:SolidColorStroke weight="1" color="0xFFFFFF" /> 
    </s:stroke> 
</s:Line> 

<s:Line top="300" left="0" right="0"> 
    <s:stroke> 
     <s:SolidColorStroke weight="1" color="0xFFFFFF" /> 
    </s:stroke> 
</s:Line> 

topleft属性300の値s:Lineをスキンにハードコードしないでください。コンポーネントからのmaxWhiteBoardWidth/maxWhiteBoardHeightの値の変化を反映する必要があります。

私はskinClass属性を使用してスキンを設定しています。スキンを動的にロードする必要がありますか?もしそうならライフサイクルの中でどのように/どのように?

私は最近Flex 3から来ています。そのため、Sparkのスキニングアーキテクチャはまだ少しばかりです。ありがとう。

答えて

0

試してみてください。

<s:Line left="{hostComponent.maxWhiteBoardWidth}" top="0" bottom="0"> 
    ... 
</s:Line> 
<s:Line top="{hostComponent.maxWhiteBoardHeight}" left="0" right="0"> 
    ... 
</s:Line> 

し、メタデータのディレクティブを持っていることを確認してください。

<fx:Metadata> 
     <!-- Specify the component that uses this skin class. --> 
     [HostComponent("my.component.MyComponent")] 
</fx:Metadata> 

そうでない場合はコンポーネントのカスタムプロパティが適切に皮膚にさらされることはありません。

関連する問題