Pour un bouton Flex 4.6, on peut définir une étiquette et une icône:Pourquoi l'apparence du bouton d'étincelle par défaut n'est-elle pas associée à la balise iconDisplay?
<s:Button icon="{@Embed('assets/icon.png'}" label="Do the dance" />
Les parties de la peau corrsesponding sont: iconDisplay:BitmapImage
et labelDisplay:IDisplayText
qui sont définis par le composant (adobe ref). Ils sont définis dans les ButtonBase.as
spark.components.supportClasses.ButtonBase
//--------------------------------------------------------------------------
//
// Skin parts
//
//--------------------------------------------------------------------------
[SkinPart(required="false")]
/**
* A skin part that defines an optional icon for the button.
*
* @langversion 3.0
* @playerversion Flash 10.1
* @playerversion AIR 2.0
* @productversion Flex 4.5
*/
public var iconDisplay:BitmapImage;
[SkinPart(required="false")]
/**
* A skin part that defines the label of the button.
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 1.5
* @productversion Flex 4
*/
public var labelDisplay:IDisplayText;
spark.components.Button étend ButtonBase et ajoute quelques nouveaux styles et la propriété _emphasized mais ne mentionner quelque chose sur iconDisplay. Donc, il me semble que la seule classe utilisée pour dessiner le bouton est la classe de peau. Si nous allons à spark.skins.spark.ButtonSkin qui est la peau par défaut utilisé par Flex (ou est-il), nous trouverons:
<!-- layer 8: text -->
<!--- @copy spark.components.supportClasses.ButtonBase#labelDisplay -->
<s:Label id="labelDisplay"
textAlign="center"
maxDisplayedLines="1"
horizontalCenter="0" verticalCenter="1" verticalAlign="middle"
left="10" right="10" top="2" bottom="2">
</s:Label>
de sorte qu'une étiquette peut être affiché, mais la peau n'a pas <s:BitmapImage id="iconDisplay">
donc je ne comprends pas comment se fait l'icône est affichée lorsqu'il n'y a pas de conteneur pour le montrer?