Standardmäßig legt Animate die Framerate für den Ticker fest, aber nicht für Movieclips selbst, die versuchen, der Ticker-Rate zu folgen, bis sie zu lange zum Zeichnen brauchen und dann langsam werden.
Um dies zu beheben, setzen Sie die framerate on the movieclip selbst zusätzlich auf dem Ticker.
Dadurch wird der Movieclip alle Frames löschen, die notwendig sind, um das Video mit der richtigen Framerate zu belassen, was zu etwas abgehackten Animationen führen kann, aber zumindest mit der richtigen Geschwindigkeit und daher mit jeder Audiowiedergabe übereinstimmen.
Wenn Sie die HTML-Ausgabedatei Animate erstellt verwenden, können Sie diese Zeile in der handleComplete Funktion hinzufügen:
function handleComplete(evt) {
//This function is always called, irrespective of the content. You can use the variable "stage" after it is created in token create_stage.
var queue = evt.target;
var ssMetadata = lib.ssMetadata;
for(i=0; i<ssMetadata.length; i++) {
ss[ssMetadata[i].name] = new createjs.SpriteSheet({"images": [queue.getResult(ssMetadata[i].name)], "frames": ssMetadata[i].frames})
}
exportRoot = new lib._MyAnimation_canvas();
stage = new createjs.Stage(canvas);
stage.addChild(exportRoot);
stage.enableMouseOver();
exportRoot.framerate = lib.properties.fps; // <-- ADD THIS LINE
//Registers the "tick" event listener.
fnStartAnimation = function() {
createjs.Ticker.setFPS(lib.properties.fps);
createjs.Ticker.addEventListener("tick", stage);
}
Kompliziertere Animationen kann dies erfordern in anderen Orten eingestellt werden. Wenn Sie einen anderen js-Code verwenden, müssen Sie herausfinden, welcher Movieclip Probleme hat, und ihn dort einstellen.