如何从侧面而不是在 Animate CC HTML5 中居中缩放对象?
How to scaleX an object from the side, instead of centered in Animate CC HTML5?
我设法创建了一个进度条,我使用 queue.on("progress", handleProgress); 更改 scaleX 我命名为 bar_mc.
的动画片段
var queue = new createjs.LoadQueue();
queue.on("complete", handleComplete);
queue.on("progress", handleProgress);
queue.loadFile({
id: "img",
src: "images/image.jpg"
});
function handleComplete(evt) {
console.log("Done!");
createjs.Ticker.removeAllEventListeners();
};
function handleProgress(event) {
console.log("Event Loading: " + (queue.progress.toFixed(2) * 100) + "%");
};
createjs.Ticker.addEventListener("tick", handleTick.bind(this));
function handleTick(event) {
console.log("ticking");
this.bar_mc.scaleX = queue.progress;
};
有效,但它从中心开始,如 a):
如何让它像 b) 中那样从侧面开始?
此外,这在我尝试时给了我一个错误,但是有没有办法将 this.bar_mc.scaleX 放入 function handleProgress(event ) 而不是使用单独的代码函数来设置动画 bar_mc?
更新: 我确定有一种方法可以使用代码来完成,但我不知道该怎么做。我所要做的就是更改 Animate 中的变换点:
现在 bar_mc 从侧面缩放!
更新 2: 使用了 Muhammed Maruf 关于“fileprogress”的见解并更改了代码。现在它看起来更干净了,无需使用单独的自动收报机来制作 bar_mc 比例。
添加 var root before queue.on 代码使我能够将 root.bar_mc.scaleX 添加到 函数 handleProgress(event) 中,无需更改 "progress":
var root = this;
root.bar_mc.scaleX = 0;
var queue = new createjs.LoadQueue();
queue.on("complete", handleComplete);
queue.on("progress", handleProgress);
queue.loadFile({
id: "img",
src: "images/image.jpg"
});
function handleComplete(evt) {
console.log("Done!");
// do other stuff
};
function handleProgress(event) {
console.log("Event Loading: " + (queue.progress.toFixed(2) * 100) + "%");
root.bar_mc.scaleX = queue.progress;
};
这就是我更新代码的方式。
请注意,我使用“fileload”而不是“complete”和“fileprogress”而不是“progress”。
var root = this;
root.bar_mc.scaleX = 0;
var source = "https://loremflickr.com/cache/resized/65535_49259263438_7e86e005b3_h_1280_960_nofilter.jpg?" + Math.random();
var queue = new createjs.LoadQueue();
queue.on("fileload", handleComplete);
queue.on("fileprogress", handleProgress);
queue.loadFile({
id: "img",
src: source
});
function handleComplete(evt) {
console.log("Done!");
console.log(queue.progress);
root.bar_mc.scaleX = queue.progress;
};
function handleProgress(event) {
console.log("Event Loading: " + (queue.progress.toFixed(2) * 100) + "%, " + queue.progress);
root.bar_mc.scaleX = queue.progress;
};
我设法创建了一个进度条,我使用 queue.on("progress", handleProgress); 更改 scaleX 我命名为 bar_mc.
的动画片段var queue = new createjs.LoadQueue();
queue.on("complete", handleComplete);
queue.on("progress", handleProgress);
queue.loadFile({
id: "img",
src: "images/image.jpg"
});
function handleComplete(evt) {
console.log("Done!");
createjs.Ticker.removeAllEventListeners();
};
function handleProgress(event) {
console.log("Event Loading: " + (queue.progress.toFixed(2) * 100) + "%");
};
createjs.Ticker.addEventListener("tick", handleTick.bind(this));
function handleTick(event) {
console.log("ticking");
this.bar_mc.scaleX = queue.progress;
};
有效,但它从中心开始,如 a):
如何让它像 b) 中那样从侧面开始?
此外,这在我尝试时给了我一个错误,但是有没有办法将 this.bar_mc.scaleX 放入 function handleProgress(event ) 而不是使用单独的代码函数来设置动画 bar_mc?
更新: 我确定有一种方法可以使用代码来完成,但我不知道该怎么做。我所要做的就是更改 Animate 中的变换点:
现在 bar_mc 从侧面缩放!
更新 2: 使用了 Muhammed Maruf 关于“fileprogress”的见解并更改了代码。现在它看起来更干净了,无需使用单独的自动收报机来制作 bar_mc 比例。
添加 var root before queue.on 代码使我能够将 root.bar_mc.scaleX 添加到 函数 handleProgress(event) 中,无需更改 "progress":
var root = this;
root.bar_mc.scaleX = 0;
var queue = new createjs.LoadQueue();
queue.on("complete", handleComplete);
queue.on("progress", handleProgress);
queue.loadFile({
id: "img",
src: "images/image.jpg"
});
function handleComplete(evt) {
console.log("Done!");
// do other stuff
};
function handleProgress(event) {
console.log("Event Loading: " + (queue.progress.toFixed(2) * 100) + "%");
root.bar_mc.scaleX = queue.progress;
};
这就是我更新代码的方式。 请注意,我使用“fileload”而不是“complete”和“fileprogress”而不是“progress”。
var root = this;
root.bar_mc.scaleX = 0;
var source = "https://loremflickr.com/cache/resized/65535_49259263438_7e86e005b3_h_1280_960_nofilter.jpg?" + Math.random();
var queue = new createjs.LoadQueue();
queue.on("fileload", handleComplete);
queue.on("fileprogress", handleProgress);
queue.loadFile({
id: "img",
src: source
});
function handleComplete(evt) {
console.log("Done!");
console.log(queue.progress);
root.bar_mc.scaleX = queue.progress;
};
function handleProgress(event) {
console.log("Event Loading: " + (queue.progress.toFixed(2) * 100) + "%, " + queue.progress);
root.bar_mc.scaleX = queue.progress;
};