1
var star = document.getElementById("star");
var color = "#ef6360";

bonsai.run(star, {

    code: function() {

        new Star(30, 30, 20, 5, 0.7).attr({

            fillColor: color

        }).addTo(stage);

    }

});

動作しませんが、変数を削除して文字列を直接使用すると動作しますfillColor:"#ef6360". なんで?

4

1 に答える 1

2

私の知る限り、ここcodeのドキュメントに従って、コンテキストがブラウザへのアクセスを制限しているため、内部の変数にアクセスすることはできません(最初のメモを読んでください)

これは、ドキュメントが正確に言っていることです。

: ほとんどの場合、Bonsai コードはワーカーで実行されるため、ランナー コンテキストではブラウザー機能へのアクセスが制限されています (DOM アクセスがないなど)。したがって、提供されている Bonsai API と、ワーカーに提供されている通常の JS 関数の使用に制限されています (詳細については、MDN のワーカーで利用可能な関数を参照してください)。初期データをランナー コンテキストに渡したい場合は、このページの下部でそれについて読むことができます。また、Bonsai を介して DOM を動的に操作したい場合は、通信の概要を参照してください。

Web ワーカー内からウィンドウ スコープにアクセスする方法があれば、それは可能です。(できるかどうかはわかりません)

お役に立てれば。

于 2015-04-23T04:24:18.573 に答える