- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在 pts.js 中为粒子加载相同的图像。
当我尝试使用 Assets 文件夹中的本地镜像时,我在控制台中收到错误“NS_ERROR_NOT_AVAILABLE:”。
我在某处读到这可能是因为图像在加载之前就试图使用...
我也试过使用指向其他图像的外部链接而不是本地镜像,而且效果很好。所以不确定我的本地文件发生了什么。
编辑:
我只是在 chrome 而不是 firefox 上试过这个,我收到了一条新的更详细的错误消息。
“未捕获的 DOMException:无法在‘CanvasRenderingContext2D’上执行‘drawImage’:提供的 HTMLImageElement 处于‘损坏’状态。”在 pts.min.js:6.
仍然不确定到底哪里出了问题。
Pts.quickStart('#hello', 'transparent')
var world
// Loading in image to be used
var myImg = new Image()
myImg.src = '/assets/img/myImage.png'
space.add({
start: (bound, space) => {
// Create world and 100 random points
world = new World(space.innerBound, 1, 0)
let pts = Create.distributeRandom(space.innerBound, 20)
// Create particles and hit them with a random impulse
for (let i = 0, len = pts.length; i < len; i++) {
let p = new Particle(pts[i]).size(i === 0 ? 10 : 20)
p.hit(0, 0)
world.add(p)
}
world.particle(0).lock = true
},
animate: (time, ftime) => {
world.drawParticles((p, i) => {
// Image variable for the particle to be drawn as
form.image(myImg)
})
world.update(ftime)
},
action: (type, px, py) => {
if (type == 'move') {
world.particle(0).position = new Pt(px, py)
}
},
resize: (bound, evt) => {
if (world) world.bound = space.innerBound
}
})
space.bindMouse().bindTouch()
space.play()
最佳答案
在canvas上绘制图片,需要先加载图片。您可以使用 myImg.addEventListener( 'load', ... )
跟踪它。
加载后,您可以在 Pts 的动画循环中的 form.image( myImg, ... )
中使用它。
这是一个基于您上面的代码的工作示例:
Pts.quickStart( "#pt", "#123" );
//// Demo code starts (anonymous function wrapper is optional) ---
(function() {
var world;
var imgReady = false;
// Loading in image to be used
var myImg = new Image()
myImg.src = 'http://icons.iconarchive.com/icons/icojoy/maneki-neko/256/cat-6-icon.png';
myImg.addEventListener('load', function() {
imgReady = true;
}, false);
space.add( {
start: (bound, space) => {
// Create world and 100 random points
world = new World( space.innerBound, 1, 0 );
let pts = Create.distributeRandom( space.innerBound, 100 );
// Create particles and hit them with a random impulse
for (let i=0, len=pts.length; i<len; i++) {
let p = new Particle( pts[i] ).size( (i===0) ? 30 : 3+Math.random()*space.size.x/50 );
p.hit( Num.randomRange(-50,50), Num.randomRange(-25, 25) );
world.add( p );
}
world.particle( 0 ).lock = true; // lock it to move it by pointer later on
},
animate: (time, ftime) => {
world.drawParticles( (p, i) => {
if (imgReady) {
console.log( p )
form.image(myImg, [p.$subtract( p.radius ), p.$add( p.radius )] );
}
});
world.update( ftime );
},
action:( type, px, py) => {
if (type == "move") {
world.particle( 0 ).position = new Pt(px, py);
}
},
resize: (bound, evt) => {
if (world) world.bound = space.innerBound;
}
});
space.bindMouse().bindTouch();
space.play();
})();
关于javascript - pts.js 'NS_ERROR_NOT_AVAILABLE: ' 尝试将图像用于粒子时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56420837/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我正在寻找一种方法来检测带有图像点的消息 SCTE35 点。你有什么建议吗? 谢谢你的帮助 最佳答案 到目前为止我已经成功使用了DVBInspector对于这个问题。 关于ffmpeg - 如何使用
当从具有视频和音频流的媒体文件中提取片段而不重新编码(-c 复制)时,指定的请求查找和结束时间很可能不会精确地落在源中的关键帧上。 在这种情况下,ffmpeg 将抓取每个轨道最近的关键帧,并使用不同的
我的应用程序需要在输入的两个(或多个)流之间切换,而只有一个输出(您可以将其视为流多路复用器)。来自输入的帧被解码,然后由于覆盖的东西再次重新编码。 因此,为了安排 AVFrame PTS,我在编码帧
我有一个带有视频和元数据流的 TS。视频已正确设置 PTS 值,而元数据没有(ffprobe 为每个提供 N/A)。但是,元数据包在流中的位置正确。 有没有一种方法可以根据元数据包在流中的位置为它们分
有人可以简要解释一下首字母缩略词 PTS 在视频编码方面的含义吗? 最佳答案 演示文稿时间戳。我不能说它比维基页面更好,在这里找到:http://en.wikipedia.org/wiki/Prese
我正在尝试在输入流上重置 pts 并创建新的 pts 并将流发布到 RTMP。 ffmpeg -re -f lavfi -i "movie=${SOURCE}:s=0+1[out0][out1];[0
假设我有一个来自现有 HLS 的 .ts 文件,我只是想调整它的大小。例如,创建第二个较低分辨率的流,可以在带宽不足时切换。 ffmpeg -i video1080_1.ts -vf "scale=1
我有一个视频,其中包含超出视频数据末尾的一些音频数据包: $> ffprobe -show_packets video.mp4 ... ... ... [PACKET] codec_type=vide
我有一个 mov我需要得到结尾的文件pts对于音频和视频流。我可以通过执行以下操作(手动)来做到这一点: ffprobe -show_packets file.mov 这给了我这样的输出(当然还有更多
我有以下文件: version: 1 n_points: 68 { 55.866278 286.258077 54.784191 315.123248 62.148364 348.908294 83
据我所知,PCR 以 42 位存储,PTS 以 33 位存储在 mpegts 容器中 所以, Max value for PCR is 2^42 = 4398046511104 Max value
我有一个IP摄像机,可以发送8000hz采样率配置的音频和H264视频。 我做了一个程序,从这个IP摄像机生成TS文件,它在VLC,除了iPhone的Android Media Player,Mac
尝试通过 ffmpeg 了解一些音频/视频同步问题,我注意到以下内容。运行此代码 while (av_read_frame(formatCtx, &packet) >= 0) { if (pac
我在从 avi 转码为 mp4(x264) 时遇到了 fps 问题。最终问题出在 PTS 和 DTS 值上,因此在 av_interleaved_write_frame 函数之前添加了第 12-15
我有一个 MPEG2 TS 文件,现在我有兴趣从每个图片帧中提取 PTS 信息。我知道 PTS 是用 33 位描述的,包括 3 个标记位。但是我不知道如何将这个位域转换为更容易理解的形式(秒,毫秒)。
我有一个使用 STDIN 3 的终端 (/proc/xxxx/fd/0 ->/dev/pts/3) 所以如果(在另一个终端)我这样做: echo 'do_something_command' > /d
我正在使用 ffprobe 测试带有 H264 视频的 mp4 文件。 我正在使用以下命令来获取帧信息。 ffprobe -i -show_frames -select_streams v 我得到以
我们有一些处理视频的 FFmpeg 信封。 视频的树首帧为:B -> B -> I 如下图: PTS 和 DTS 对第一帧返回负数: 我们有一些代码会跳过某个时间点以下的帧(第一帧为 0)。 是否可以
我一直在使用从 python 脚本调用的 ffmpeg 命令对文件文件夹进行转码: ffmpeg -y -i in_file.mov -loglevel warning -codec:v libx26
我是一名优秀的程序员,十分优秀!