在JSFidle或其他任何地方测试Pixijs示例?

testing pixijs examples in jsfiddle or anywhere else?

提问人:Rip 提问时间:2/28/2023 更新时间:2/28/2023 访问量:105

问:

我才刚刚开始学习 Pixijs,我想测试一些示例。

当我复制这个例子时:https://pixijs.io/examples/#/filters-basic/displacement-map-flag.js

进入 JSFiddle:https://jsfiddle.net/ripmurdock/42h7fckx/4/

我在控制台中收到一个黑匣子和此错误: 加载 “https://fiddle.jshell.net/_display/?editor_console=true” 时发现无效的 X-Frame-Options 标头:“ALLOWALL”不是有效的指令。

我比较熟悉codepen。Codepen 支持说运行这个例子是 Pro 功能。

在 JSfiddle 或其他任何地方测试 Pixijs 示例的好方法是什么?

const app = new PIXI.Application();
document.body.appendChild(app.view);

app.stage.interactive = true;

const container = new PIXI.Container();
app.stage.addChild(container);

const flag = PIXI.Sprite.from('examples/assets/pixi-filters/flag.png');
container.addChild(flag);
flag.x = 100;
flag.y = 100;

const displacementSprite = PIXI.Sprite.from('examples/assets/pixi-filters/displacement_map_repeat.jpg');
// Make sure the sprite is wrapping.
displacementSprite.texture.baseTexture.wrapMode = PIXI.WRAP_MODES.REPEAT;
const displacementFilter = new PIXI.filters.DisplacementFilter(displacementSprite);
displacementFilter.padding = 10;

displacementSprite.position = flag.position;

app.stage.addChild(displacementSprite);

flag.filters = [displacementFilter];

displacementFilter.scale.x = 30;
displacementFilter.scale.y = 60;

app.ticker.add(() => {
    // Offset the sprite position to make vFilterCoord update to larger value. Repeat wrapping makes sure there's still pixels on the coordinates.
    displacementSprite.x++;
    // Reset x to 0 when it's over width to keep values from going to very huge numbers.
    if (displacementSprite.x > displacementSprite.width) { displacementSprite.x = 0; }
});
JavaScript jsfiddle pixi.js codepen

评论


答:

0赞 Eduardo Páez Rubio 2/28/2023 #1

为了在代码片段平台中使用pixi .js,您首先需要按照工具提供的方式加载库。

在 JSFiddle 中,当您展开侧边栏的“资源”部分时,您会找到一个输入字段。

在 Codepen 中,您可以从设置菜单加载任意外部脚本。您将在“设置”->“JS”-“>添加外部脚本/笔”下找到一个文本字段,可在其中导入任何外部 JavaScript 文件。

这些字段通常为各种 CDN 提供的热门库提供自动补全功能。键入后,它会自动导入为 .pixi.jshttps://cdnjs.cloudflare.com/ajax/libs/pixi.js/7.1.3/pixi.min.js

此外,您还需要更新示例中导入的资产的 URL。将相对 URL(与示例托管在同一个目录中)更改为绝对 URL。而不是 ,您需要提供到外部资源的完整路由。这适用于示例可能加载的所有其他资产,包括置换贴图。examples/assets/pixi-filters/flag.pnghttps://pixijs.io/examples/examples/assets/pixi-filters/flag.png

这是一个有效的 Codepen,所有这些修复都已到位。这与在 JSFiddle 上运行的示例相同。

评论

0赞 Rip 2/28/2023
感谢您的详细解释。有没有一个资产托管站点不会在 jsfiddle 或 codepen 上生成错误?我上传了几张测试图片到 w3spaces.com。jsfiddle 和 codepen 都在结果窗口中显示图像,但 pixeljs div 为空,并且 jsfiddle 或 codepen 在控制台中都有类似的错误: 跨域请求被阻止:同源策略不允许读取 fcd1.w3spaces.com/basketclip.png 的远程资源。
0赞 Rip 2/28/2023
看起来 jsfiddle 和 codepen 都允许 github 资产与 pixijs 一起使用,它们将显示来自 w3spaces.com 的资产,但它们会阻止任何 pixijs 转换应用于 w3spaces.com 上托管的资产。知道在哪里可以上传用于测试pixijs的资产吗?这里显示的是 w3spaces.com 上托管的图片,但pixijs被阻止使用这些图片:jsfiddle.net/ripmurdock/examL49p/6 codepen.io/fcdobbs/pen/RwYKWrj