0

次の形式で設定をアニメーション プラグインに渡す方法を見つけようとしています (ユーザーがこのような設定で飛び込んで遊ぶことを期待するのは悪いことだとわかっていますが、それに沿って GUI を構築します)同じように):

   $('#animationContainer').plugin({
      'path':[
            {'path_on_x':[ // PATH_ON X IS AN ARRAY
                {'0':'0px','1':'0px','2':'0px'}, // object 1 starting X values (0,1,2)
                {'0':'0px','1':'0px','2':'0px'}, // object 2 starting X values (0,1,2)
                {'0':'150px','1':'150px','2':'150px'} // object 3 starting X values...
            ]},
            {'path_off_x':[ // PATH_ON X IS AN ARRAY
                {'0':'0px','1':'0px','2':'0px'},
                {'0':'0px','1':'0px','2':'0px'},
                {'0':'150px','1':'150px','2':'150px'}
            ]},
            {'path_on_y':[ // PATH_ON Y IS AN ARRAY
                {'0':'0px','1':'0px','2':'0px'},
                {'0':'0px','1':'0px','2':'0px'},
                {'0':'0px','1':'50px','2':'200px'}
            ]},
            {'path_off_y':[ // PATH_ON Y IS AN ARRAY
                {'0':'0px','1':'0px','2':'0px'},
                {'0':'0px','1':'0px','2':'0px'},
                {'0':'200px','1':'50px','2':'0px'}
            ]}
        ]
     });

このコードは現在プラグイン内でセットアップされており、すべての静的値を参照しています。「PATH」には、パスに沿ったオブジェクトのアニメーションに関連するすべての設定が含まれています。path_on_x、path_off_x、path_on_y、および path_off_y にはすべて、ポイント 0 からポイント 1、ポイント 2 などにアニメーション化するための特定の座標値のセットが含まれています。

配列内の座標の各セットには、アニメーション化されているさまざまなオブジェクトに固有の値が含まれています。(上記のコードに記載)

私は典型的な defaults= .... コードを実行し、それをユーザーオプションとマージすることに慣れていますが、この場合、デフォルト (または他の種類のフォールバック設定) を設定するにはどうすればよいでしょうか? 標準の defaults = ... コードはそれをカットしないと確信しており、デフォルトの代わりに上記のコードを使用するだけでは、3 つではなく 20 個のオブジェクトがアニメーション化される可能性があるという事実を説明できません。上に示しました。

助言がありますか?ありがとう!

4

2 に答える 2

2

私はそのようなフォーマットを提案します:

$('#animationContainer').plugin({
  "path": [
    {
      "x": [[0, 0, 0], [0, 0, 0]],
      "y": [[0, 0, 0], [0, 0, 0]]
    },
    {
      "x": [[0, 0, 0], [0, 0, 0]],
      "y": [[0, 0, 0], [0, 0, 0]]
    },
    {
      "x": [[150, 150, 150], [150, 150, 150]],
      "y": [[0, 50, 200], [200, 50, 200]]
    }
  ]
});

このようにして、プロパティを均等に分散させるのではなく、1 つの場所に 1 つのオブジェクトに属するプロパティを配置します。理解するのもはるかに簡単です。(ところで、「パス」プロパティ自体は、トップレベルに保つのではなく、個々のオブジェクトに統合するための良い候補のように見えます。)

プロパティへのアクセスは簡単です。

options.path[0].x[0] // starting values
options.path[0].x[1] // stopping values

それらにデフォルトを適用するのが簡単になります。必要なのは for ループだけです

for(var i=0; i<options.path.length; i++) {
  // merge options.path[i] with default values, e.g. via $.extend()
}
于 2012-04-10T05:41:06.320 に答える
0

json をプラグインに渡してから、json を要件に合わせて変換できます。プラグインでこの json 形式を使用する必要はありません。代わりに、条件を簡単にループして使用できます。ところで、ここにあなたを助けるかもしれない小さなツールがあります。

http://code.google.com/p/jquery-json/

于 2012-04-10T05:40:20.127 に答える