2012-01-18 5 views
2

私はスケジュールブロック用のブロックを持つスケジューリングアプリケーションを作っています。それらは1ピクセルの長方形で区切られています。ほとんどの場合、私は変換を使ってグリッドを拡大/縮小することができますが、これらの1pxセパレータを同じ幅に保つことは明らかです。dojoベクトルのサイズを変更するにはどうすればいいですか?

おそらくこれは意見の問題であり、ルールに反していますが、私が考えることができる唯一の方法は、行を別の配列に保ち、必要に応じて新しい次元を再計算して移動/サイズ変更イベントでは、私はdojoに新しいことを認識していないことをこれを行うためのより良い方法がある必要がありますように感じる。これが妥当な方法であれば、私は最初から反パターンに取り掛かりたくはないと言います。ブロックラインを表現するより適切な方法は、単にそれらを実際にベクトルを用いて実際に描くよりもですか?

編集:コードサンプルが必要でした。私は私のコードを投稿することができ、それは本当に問題ではありません、単純な例では、このようなものになるだろう:私は300に幅を変えるような何かを、またはオブジェクトの移動する方法を、上記の

var rect = surface.createRect({ x: 100, y: 50, width: 200, height: 100 }) 
.setFill("yellow"); 

ポジション?私は基本的な形状、この場合はrect.shapeを修正しようとしましたが、驚くことではないが、変更を適用するようには見えません。

これを修正できれば便利ですが、変更が適用されたら適用する方法が見つけられません。私はrect._applyTransform()を実行しようとしましたが、どちらもうまくいきませんでした。私にはおそらくdomの検査がありませんでした。私はにすることができますが、むしろ不便で、単​​にオブジェクトを移動する方法/位置を変更する方法を見つけることができません。

edit2:答えを見つけました。下記を参照してください。

+0

コードを投稿できますか? – Philippe

答えて

3

私はsetShapeメソッドを探しています。これにより、四角形の場合は、形状プロパティー、位置座標、高さ、幅、半径のいずれかを直接設定できます。あなたが絶対位置ではなく相対位置を使用して移動したいかどうかを判断するには、obj.shapeプロパティから取得できる現在の位置を単純に追加(または減算)する必要があります。右にRECTは50pxを移動し、それはあなたがしたい背の高い20ピクセルにする例えばので

rect.setShape({height: rect.height + 20, x: rect.shape.x + 50}); 

また、単にremoveShapeメソッドを呼び出す形を削除するには誰にも助けていた場合は、私に取りましたそれを見つけるために分。私はdojoのリファレンスがセットアップされている方法が気に入らず、firebugを使ってDOMをブラウズする方が良いか悪いのかが今までより良かった。

関連する問題