それはバグですか?またはそれを行う別の簡単な方法はありますか?
いいえ、それはバグではありません。クラスのスキンにはView
という名前の「スキン パーツ」があり、これは、コンポーネントがその子コンポーネントを表示するために使用するcontentGroup
オブジェクトです。View
このスキン パーツがないと、ビューには子コンポーネントを保持するコンテナーがありません。
スキンを持つすべてのコンポーネントは、一連の「スキン パーツ」を定義します。必要なスキン パーツとそうでないスキン パーツがあります。
奇妙なことに、contentGroup
スキン パーツは必須ではありません。
このような他のバグを回避するために、他のコンポーネントをスキンするための良い方法はありますか?
ドキュメントを参照して、コンポーネントが宣言しているスキン パーツを確認することをお勧めします。たとえば、コンポーネントのドキュメントの「スキン パーツ」セクションへのリンクを次に示します。View
ドキュメントの各ページの右上には、ページのこのセクションにジャンプするための「スキン パーツ」リンクがあります。
ウィザードを使用して MXML スキンを作成する場合、Flex が定義する既存のスキンの 1 つからコードをコピーするオプションがあります。これを行うと、すべてのスキン パーツと一連の Adobe スタイリング コードを含むコードが得られます。
元のスキンをコピーしないと、空の MXML スキンが作成されます。ただし、ウィザードはコードにコメントを作成し、スキン パーツが何であるか、およびそれらが必要かどうかを示します。View
空のスキンを作成するときに得られるコメントは次のとおりです。
<!-- SkinParts
name=contentGroup, type=spark.components.Group, required=false
-->
Catalyst などの他のツールを使用することもできますが、それらは必須ではありません (とにかく Catalyst は廃止されたと思います)。ときどき、アドビのデフォルト コードを使用してスキンを作成し、不要なものを削除することから始めます。それ以外の場合は、「ごちゃごちゃ」がたくさんあるので、空白のスキンを使用します。