0

Flex 4 ベータ版を使用していますが、外部 CSS をロードする機能が壊れているようです。以下のコードを実行すると、スタイリングがまったく表示されません。私は何かを逃しましたか?

コードは次のとおりです。

パッケージ コンポーネント { import flash.events.Event; flash.net.URLLoader をインポートします。flash.net.URLRequest をインポートします。flash.text.StyleSheet をインポートします。

import mx.controls.Label;
import spark.components.Panel;

public class MainPanel extends Panel
{
    private var mainLabel:Label = new Label();
    private var label2:Label = new Label();


    public function MainPanel()
    {
        super();

        var cssUrl:URLRequest = new URLRequest("css/style.css");
        var cssLoader:URLLoader = new URLLoader();
        cssLoader.addEventListener(Event.COMPLETE, cssLoaded);
        cssLoader.load(cssUrl);
    }

    function cssLoaded(event:Event):void {
        var css:StyleSheet = new StyleSheet();
        css.parseCSS(URLLoader(event.target).data);

        mainLabel.styleSheet = css;
        mainLabel.htmlText = "Main Label";
        mainLabel.horizontalCenter = 0;
        mainLabel.verticalCenter = -350;
        mainLabel.setStyle("styleName", "h1");
        addElement(mainLabel);

        label2.htmlText="Sub-Label";
        label2.horizontalCenter="0";
        label2.verticalCenter="-300";
        addElement(label2);
    }
}

}

css/style.css

.h1 { color:#ffe145; フォントファミリー: Verdana; フォントサイズ: 36; フォント スタイル: 斜体; フォントの太さ: 太字; }

このコードをロードします (s:Application タグは、stackoverflow ソフトウェアによってドロップされます):

<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>

<custom:MainPanel horizontalCenter="0" verticalCenter="0"/>

4

1 に答える 1

0

CSS ファイルが Web サーバー上の SWF に対して相対的な位置にある場合は、このタグをアプリケーションの MXML に追加してみてください。

<fx:Style source="css/style.css"/>

これにより、すべての CSS 設定が取り込まれ、自動的に割り当てが行われます。

于 2010-01-21T21:07:03.593 に答える