2010-01-29 2 views
1

Lors du débogage de certaines tailles de conteneur (à savoir HBox) dans Flex (version 3.5), j'ai remarqué une variable "$ height" dans la liste Variables.

Est-ce que quelqu'un sait ce qu'est cette variable? Il est marqué comme protégé, mais je ne crois pas que je peux y accéder dans une classe d'enfant.

J'ai remarqué que la valeur obtenue est parfois différente de "height" et "_height". Est-ce que quelqu'un sait pourquoi cela est et ce que cela signifie pour la façon dont un composant est dessiné?

Répondre

2

La source complète de cadre mx est disponible dans votre répertoire sdk ici:

\..\sdks\3.3.0\frameworks\projects\framework\src 

La documentation privée dit.

/* 
* This property allows access to the Player's native implementation 
* of the 'height' property, which can be useful since components 
* can override 'height' and thereby hide the native implementation. 
* Note that this "base property" is final and cannot be overridden, 
* so you can count on it to reflect what is happening at the player level. 
*/ 

Il est marqué par mx_internal si vous devez déclarer use namespace mx_internal; pour y avoir accès dans votre propre classe.

+0

Vous savez, il ne m'est jamais venu à l'esprit de regarder dans la source :) Merci! – bedwyr

0

Flex remplace un grand nombre de méthodes dans ses objets personnalisés, tels que FlexSprite. Dans leur base de code interne, ils déclarent souvent de nouvelles méthodes marquées 'final' et super() à l'implémentation de la méthode par défaut. Ces méthodes finales commencent par '$' afin qu'elles soient facilement identifiables.

Un autre exemple que vous verriez est '$ addChild', flex a une fonctionnalité addChild personnalisée, mais utilise l'implémentation originale en interne via la méthode '$ addChild'.