为什么在PIXI的身上访问不到loader?
这是打印结果
PIXI打印一下看看
<template>
<div ref="appContainer"></div>
</template>
import * as PIXI from 'pixi.js';
import { onMounted, onUnmounted, ref } from 'vue';
export default {
setup() {
let app = null;
let scene = null;
let sprite = null;
const appContainer = ref(null);
onMounted(() => {
app = new PIXI.Application({
width: 800,
height: 600,
backgroundColor: 0x1099bb
});
appContainer.value.appendChild(app.view);
scene = new PIXI.Container();
app.stage.addChild(scene);
sprite = PIXI.Sprite.from('image.png');
sprite.anchor.set(0.5);
sprite.x = app.screen.width / 2;
sprite.y = app.screen.height / 2;
scene.addChild(sprite);
});
onUnmounted(() => {
app.destroy(true);
});
return {
appContainer,
scene,
sprite
};
}
}
import { Application, Sprite, Loader } from 'pixi.js';
const loader = Loader.shared;// Loader.shared内置的单例loader
const loader = new Loader();// 也可以使用自定义的loader
const app = new Application({
width: 300,
height: 300,
antialias: true,
transparent: false,
resolution: 1,
backgroundColor: 0x1d9ce0
});
document.body.appendChild(app.view);
loader
.add('bili', 'http://pic.deepred5.com/bilibili.jpg')
.add('avatar', 'http://anata.me/img/avatar.jpg')
.load(setup)
// 监听加载事件
loader.onProgress.add((loader) => {
console.log(loader.progress);
});
// 启动函数setup
function setup() {
const bili = new Sprite(
loader.resources["bili"].texture
);
bili.width = 50;
bili.height = 50;
const avatar = new Sprite(
loader.resources["avatar"].texture
);
avatar.width = 50;
avatar.height = 50;
avatar.position.set(50, 50);
app.stage.addChild(bili);
app.stage.addChild(avatar);
}
通过add
方法添加需要加载的图片,所有图片加载完成后,load
方法会调用传入的setup
回调函数,这时就可以把图片精灵加入到app.stage
里。onProgress
事件可以监听加载的进度,通过这个方法,可以很方便的制作进度条动画。