Skip to content

Commit

Permalink
Merge pull request #186 from VisActor/feat/background
Browse files Browse the repository at this point in the history
fix: fix issue with image background
  • Loading branch information
neuqzxy authored Dec 23, 2024
2 parents 535c214 + 199a775 commit ca68c7b
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 9 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"changes": [
{
"packageName": "@visactor/vstory-core",
"comment": "fix: fix issue with image background",
"type": "none"
}
],
"packageName": "@visactor/vstory-core"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"changes": [
{
"packageName": "@visactor/vstory",
"comment": "fix: fix issue with image background",
"type": "none"
}
],
"packageName": "@visactor/vstory"
}
30 changes: 21 additions & 9 deletions packages/vstory-core/src/core/canvas.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,15 +51,15 @@ export class StoryCanvas implements IStoryCanvas {
scaleX = 1,
scaleY = 1
} = params;
this._container && this._initCanvasByContainer(width, height, dpr);
params.canvas && this._initCanvasByCanvas(canvas, width ?? 500, height ?? 500, dpr);
this._container && this._initCanvasByContainer(width, height, dpr, background);
params.canvas && this._initCanvasByCanvas(canvas, width ?? 500, height ?? 500, dpr, background);

this._stage.background = background;
// this._stage.background = background;
this._stage.defaultLayer.setAttributes({ background: layerBackground });
this.initScale(width, height, scaleX, scaleY);
}

protected _initCanvasByContainer(width: number, height: number, dpr: number) {
protected _initCanvasByContainer(width: number, height: number, dpr: number, background: string) {
const container = this._container;
if (!container) {
return;
Expand All @@ -69,26 +69,38 @@ export class StoryCanvas implements IStoryCanvas {
canvas.id = `_visactor_story_canvas_${this._story.id}`;
this._canvas = canvas as any;
container.appendChild(canvas);
const stage = this._initCanvas(canvas, width ?? container.clientWidth, height ?? container.clientHeight, dpr);
const stage = this._initCanvas(
canvas,
width ?? container.clientWidth,
height ?? container.clientHeight,
dpr,
background
);
// @ts-ignore
this._stage = stage;
}

protected _initCanvasByCanvas(canvas: HTMLCanvasElement, width: number, height: number, dpr: number) {
const stage = this._initCanvas(canvas, width, height, dpr);
protected _initCanvasByCanvas(
canvas: HTMLCanvasElement,
width: number,
height: number,
dpr: number,
background: string
) {
const stage = this._initCanvas(canvas, width, height, dpr, background);
this._canvas = canvas as any;
// @ts-ignore
this._stage = stage;
}

protected _initCanvas(canvas: HTMLCanvasElement, width: number, height: number, dpr: number) {
protected _initCanvas(canvas: HTMLCanvasElement, width: number, height: number, dpr: number, background: string) {
const stage = createStage({
canvas: canvas,
width,
height,
dpr,
canvasControled: true,

background,
// 得开启自动渲染,否则编辑场景中无法触发视图更新
autoRender: false,
disableDirtyBounds: true,
Expand Down

0 comments on commit ca68c7b

Please sign in to comment.