Platform:
Language:
Lifecycle
In this example, we will show you how to use the CreativeEditor SDK's CreativeEngine to modify scenes through the block
API.
Setup#
This example uses the headless CreativeEngine. See the Setup article for a detailed guide.
To get started right away, you can also access the block
API within a running CE.SDK instance via cesdk.engine.block
.
Check out the APIs Overview to see that illustrated in more detail.
Only blocks that are direct or indirect children of a page
block are rendered. Scenes without any page
child may not be properly displayed by the CE.SDK editor.
Functions#
create(type: string): number
creates a new empty design block of the requested type. By default, the following blocks are available:- Page:
//ly.img.ubq/page
orpage
- Image:
//ly.img.ubq/image
orimage
- Text:
//ly.img.ubq/text
ortext
- Sticker:
//ly.img.ubq/sticker
orsticker
- RectShape:
//ly.img.ubq/shapes/rect
orshapes/rect
- LineShape:
//ly.img.ubq/shapes/line
orshapes/line
- StarShape:
//ly.img.ubq/shapes/star
orshapes/star
- PolygonShape:
//ly.img.ubq/shapes/polygon
orshapes/polygon
- EllipseShape:
//ly.img.ubq/shapes/ellipse
orshapes/ellipse
- Page:
To create a scene, use scene.create
instead.
saveToString(blocks: number[]): Promise<string>
saves the given blocks into a string representation, which allows restoring them in a different scene or environment. If given the root of a block hierarchy, e.g. a page with multiple children, the entire hierarchy is saved.
loadFromString(content: string): Promise<number[]>
loads one or more blocks or block hierarchies from the given string. The UUID of the loaded blocks is replaced with a new one.
getType(id: number): string
returns the design block type of a given block as a string.
setName(id: number, name: string): void
assigns a name to a block. Multiple blocks can share the same name.
getName(id): string
returns a block's name.
getUUID(id): string
returns a block's UUID.
duplicate(id:number): number
duplicates a block and its children and returns the id of the duplicated block.
destroy(id:number): void
destroys a block and its children.
isValid(id:number): boolean
returns true, if a block is valid. A block becomes invalid once it has been destroyed.
File:
// Create, save and load blocksconst block = engine.block.create('shapes/star');const savedBlocks = await engine.block.saveToString([block]);const loadedBlocks = await engine.block.loadFromString(savedBlocks);// Check a blocks typeconst blockType = engine.block.getType(block);// Alter a blocks nameengine.block.setName(block, 'someName');const name = engine.block.getName(block);const uuid = engine.block.getUUID(block);// You may duplicate or destroy blocksconst duplicate = engine.block.duplicate(block);engine.block.destroy(duplicate);engine.block.isValid(duplicate); // false