1

JavaScript例外をスローしているページがあります:

raphael.jsの5144行13列目の未処理の例外
0x80048270-JavaScriptランタイムエラー:引数:小数部が範囲外です(0から1が許可されています)

私はRaphaëlのバージョン2.1.0を使用しており、デバッグの目的で、最小化されていないJavaScriptファイル(つまり、 http: //github.com/DmitryBaranovskiy/raphael/raw/master/raphael.jsからコピーされたファイル)を使用しています。

デバッガーに侵入すると(Visual Studio 2012を使用しています)、変数'opacity'の値は-0.23185589076263113ですが、0から1の間である必要があります。しかし、どのように負になるかわかりません。これがコードです(raphael.jsから、つまり私のコードではなくライブラリコードです)

        opacity = mmin(mmax(opacity, 0), 1);
        params["stroke-width"] == null && (width = a["stroke-width"]);
        params["stroke-width"] && (stroke.weight = width);
        width && width < 1 && (opacity *= width) && (stroke.weight = 1);
        stroke.opacity = opacity;

最初の行が明らかに[0、1]に制限されている場合、このコードの最後の行の不透明度== -0.23185589076263113はどのようにできますか?

(raphael.jsのNB mmaxはmath.maxで、mminはmath.minです。)

4

1 に答える 1

0

それを見つけた。

width && width < 1 && (opacity *= width) && (stroke.weight = 1); 

width が負の場合 (この場合はそうです)、不透明度の範囲を超えています。引用したブロック (5139) の前の行に幅が設定されています。

var width = (toFloat(params["stroke-width"]) || 1) * .75;

params["stroke-width"] が負である理由を調べるためにコードをデバッグする必要があり、ラファエルがそれを防ぐことを提案しました: https://github.com/DmitryBaranovskiy/raphael/issues/623

于 2012-09-26T17:32:21.643 に答える