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