0

この「問題」を抱えたのは初めてではありません。また、問題を回避して解決したこともありますが、今はそれに直面したいと思っています。

アイデアは、次のような単純な css コードでいくつかのファイル「myBeautifulStyles.css」をロードすることです。

@charset "UTF-8";
/* CSS Document */

h1, h2, h3, p, a {
    font-family:Arial, Helvetica, sans-serif;
}

h1 {
    font-size:16px;
    font-weight:bold;
}

h2 {
    font-size:14px;
    font-weight:bold;
}

h3 {
    font-size:12px;
    font-weight:bold;
}


p {
    font-size:12px;
    font-weight:normal;
}

テキストとして読み込んで StyleSheet.parseCSS() を試してみると、結果は null になり、.styleNames は空の配列を返します。テキスト(改行マーク、初期コード...)に関するものなのか、それとも何か他のものが欠けているのか疑問に思っています。Web 上の例は、常に 1 行のコードです。このテキストをきれいにして 1 行にまとめるのは簡単ですが、うまくいきますか?

そして最も重要なことは、このタスクの最善のアプローチは何ですか?

編集: 必要に応じて、このコードは php を介して de css ファイルをロードします (キャッシュを回避するため):

var ur:URLRequest = new URLRequest(httpBase+"admin_arqs.php");
ur.method = URLRequestMethod.POST;
var Vars:URLVariables = new URLVariables();
Vars.op = "ler";
Vars.url = httpBase+"conteudos_estilos.css";
ur.data = Vars;
var ul:URLLoader = new URLLoader();
ul.dataFormat = URLLoaderDataFormat.TEXT;
ul.addEventListener(Event.COMPLETE, estilos);
ul.addEventListener(IOErrorEvent.IO_ERROR, ioerror);
ul.load(ur);

function estilos(e){
    e.currentTarget.removeEventListener(e.type, arguments.callee);
    e.target.removeEventListener(IOErrorEvent.IO_ERROR, ioerror);
    var Res = JSON.decode(clearRes(String(e.target.data)));
    if(Res.erro!="OK"){
        msg("Erro: "+Res.msg);
    } else {
        ini_edit(Res.dados);
    }
}

function ioerror(e){
    e.currentTarget.removeEventListener(e.type, arguments.callee);
    e.target.removeEventListener(Event.COMPLETE, estilos);
    msg("Erro de IO!");
}

この部分はスタイルシートを設定します:

trace("Estilos em string: "+css);
var estilos:StyleSheet = new StyleSheet();
estilos.parseCSS(css);
texto.styleSheet = estilos;
trace("Estilos definidos: "+estilos.styleNames);

css テキストを生成する最初のトレースが上に表示されます。2 つ目は名前付きの配列を表示する必要があります。私も estilos.styleName.length をトレースしようとしましたが、ゼロです。

texto は TextField であり、css は Res.dados から取得されました。

4

1 に答える 1

0

@charset "UTF-8";css ファイルの先頭にあるこの行が問題を引き起こしているようです。それを削除して、問題が解決するかどうかを確認してください。

于 2013-06-07T09:36:12.827 に答える