Mám niekoľko definícií tvarov uložených v súboroch, t.j.
Kinetic.Rect({width : 150,height : 50,stroke : "black",fill :"#00D2FF",strokeWidth : .5,cornerRadius : 25,name : "rect"});
Tento riadok (okrem iných) je k dispozícii prostredníctvom poľa. Normálne vytváram tento tvar nasledovne:
rect = new Kinetic.Rect({
width: 150,
height: 50,
stroke: "black",
fill: fill,
strokeWidth: .5,
cornerRadius: 25,
name: "rect"
});
Ako vytvorím tento tvar z poľa / reťazca?
(rect = nový "reťazec z poľa [xx]")?
odpovede:
0 pre odpoveď č. 1Tvary KineticJS (ako napríklad Rect) sú definované pomocou obyčajného objektu javascript, ktorý obsahuje požadované vlastnosti.
Poznámka: Vyplnenie definície závisí od premennej fill
. Buď si istý fill
je platné!
// define a rectangle
var rectDefinition1={
width: 150,
height: 50,
stroke: "black",
strokeWidth: .5,
cornerRadius: 25
};
Túto definíciu môžete vložiť do takejto funkcie, ktorá vytvorí Kinetic.Rect z vašej definície a na tento objekt použije konkrétny nový názov.
// function to create a Kinetic.Rect from the rectangle definition
function makeRectFromObject(myObject,newName,newFill){
var rect=new Kinetic.Rect(myObject);
rect.name(newName);
rect.fill(newFill);
return(rect);
}
Použili by ste funkciu vytvárania takto:
// Use like this
var rect1=makeRectFromObject(rectDefinition1,"rect1","red");
// add the newly created rect to the layer and redisplay the layer
layer.add(rect1);
layer.draw();
Ak chcete uložiť a načítať svoje definície objektov, môžete použiť JSON:
// serialize your javascript object to a JSON text string
// This is a regular text string that can be stored in a file or database.
var myRectDefinitionAsJSONText = JSON.stringify(rectDefinition1);
// create a javascript object from your JSON text string
var rectDefinition1= JSON.parse( myRectDefinitionAsJSONText );