キャンバス(イメージ、シェイプ、選択ボックス)上のさまざまなオブジェクトの状態を記録して、XMLまたはJSONにシリアライズできるようにする方法を見つけようとしています。シリアル化のオブジェクト状態を記録する
var shapeState = { //Example of a shape being recorded
number:increment,
id:thisCanvas,
type:'shape',
kind:shapeKind,
cheight:canvasHeight,
cwidth:canvasWidth,
height:shapeHeight,
width:shapeWidth,
color:shapeColor,
x:xPos,
y:yPos
}
totalState.push(shapeState); //State of shape data has been stored in global array
しかし、形状(またはその他のオブジェクト)が静的である場合にのみ機能します。私は、グローバル配列に各オブジェクトを配置しようとしました。たとえば、「移動」ボタンをクリックした後に要素を移動すると、xPos
プロパティはどのように更新できますか?シェイプオブジェクトはすでに配列内に配置されており、名前では識別できません。グローバル配列に100以上の図形があるとすれば、更新する特定のものをどのように見つけることができますか?助けてください。ここ
はフィドルです:http://jsfiddle.net/RymyY/5/
@ Shad - あなたのソリューションが1つの視聴の寿命を超えて続く方法を理解していません。ユーザーがページを終了して別のサイトにアクセスして戻った場合、その図形は消えてしまいます。 ASP.NETについてよく知りませんが、おそらく '[_VIEWSTATE]'変数をここで使用できますか? – dopatraman
@codeninjaあなたの質問はJavaScriptとしてタグ付けされていますが、私は '.NET'がどこになるのか分かりません。私の答えでは、正確な状態は、与えられた任意の形状に対して常に 'AllShapeStates'の内部でアクセス可能です。 – Shad