gpt4 book ai didi

html - CreateJS - 针对特定关键帧

转载 作者:可可西里 更新时间:2023-11-01 14:50:32 24 4
gpt4 key购买 nike

我有一个使用 Flash 6 和 CreateJS 生成的 html5 基本演示文稿。演示文稿基本上是一堆带有 stop() 的 Flash 关键帧;命令。现在,我的问题来了:1. 如何使用位于不同页面上的链接(类似于 html anchor )定位此演示文稿中的特定框架?2. 有没有一种简单的方法可以使用某种开源库在这些帧之间添加一些很酷的帧转换?我是设计师,不是程序员,所以我对编码的了解很少。任何帮助将不胜感激。谢谢

    <!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>CreateJS export from main</title>

<script src="easeljs-0.6.0.min.js"></script>
<script src="tweenjs-0.4.0.min.js"></script>
<script src="movieclip-0.6.0.min.js"></script>
<script src="preloadjs-0.3.0.min.js"></script>
<script src="main.js"></script>

<script>
var canvas, stage, exportRoot;

function init() {
canvas = document.getElementById("canvas");
images = images||{};

var manifest = [
{src:"images/bg_b.jpg", id:"bg_b"},


];

var loader = new createjs.LoadQueue(false);
loader.addEventListener("fileload", handleFileLoad);
loader.addEventListener("complete", handleComplete);
loader.loadManifest(manifest);
}

function handleFileLoad(evt) {
if (evt.item.type == "image") { images[evt.item.id] = evt.result; }
}

function handleComplete() {
exportRoot = new lib.main();

stage = new createjs.Stage(canvas);
stage.addChild(exportRoot);
stage.update();

createjs.Ticker.setFPS(30);
createjs.Ticker.addEventListener("tick", stage);
}
</script>
</head>

<body onload="init();" style="background-color:#D4D4D4">
<canvas id="canvas" width="1024" height="768" style="background-color:#FFFFFF"></canvas>
</body>
</html>

最佳答案

CreateJS 通过在 javascript 中提供直接翻译来支持基本 ActionScript 的使用。例如,如果您将以下代码添加到您的时间线,CreateJS 发布者会足够聪明地添加一个 javascript 调用以在该位置停止时间线。

/* js
this.stop();
*/

要让链接跳到主时间轴中的某个位置,您需要使用 gotoAndPlay 或 gotoAndStop,具体取决于您是否希望继续播放。当 CreateJS 发布您的 .fla 时,它会创建一个名为 exportRoot 的主时间轴动画片段的 javascript 实例。您可以使用此实例通过 javascript 操作时间线。

问题 1:从另一个页面更改位置

现在以您的代码为例,请注意 index.html 页面链接到您的 Flash 导出页面(我称之为 target.html),其中框架的散列标记位置不同。另请注意,我已将 jquery 库添加到您导出的页面,并在 createjs.Ticker.addEventListener("tick", stage) 之后添加了几行; gotoAndStop 基于当前哈希值,并监听 future 对 gotoAndStop 的哈希值变化。

index.html

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<a href="target.html#5">Goto frame 5</a>
<a href="target.html#10">Goto frame 10</a>
<a href="target.html#15">Goto frame 15</a>
<a href="target.html#20">Goto frame 20</a>
</body>
</html>

target.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>CreateJS export from main</title>
<script src="//code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="easeljs-0.6.0.min.js"></script>
<script src="tweenjs-0.4.0.min.js"></script>
<script src="movieclip-0.6.0.min.js"></script>
<script src="preloadjs-0.3.0.min.js"></script>
<script src="main.js"></script>

<script>
var canvas, stage, exportRoot;

function init() {
canvas = document.getElementById("canvas");
images = images||{};

var manifest = [
{src:"images/bg_b.jpg", id:"bg_b"},


];

var loader = new createjs.LoadQueue(false);
loader.addEventListener("fileload", handleFileLoad);
loader.addEventListener("complete", handleComplete);
loader.loadManifest(manifest);
}

function handleFileLoad(evt) {
if (evt.item.type == "image") { images[evt.item.id] = evt.result; }
}

function handleComplete() {
exportRoot = new lib.main();

stage = new createjs.Stage(canvas);
stage.addChild(exportRoot);
stage.update();

createjs.Ticker.setFPS(30);
createjs.Ticker.addEventListener("tick", stage);

//When doc loads, check if there is a hash and gotoAndStop if there is
if(document.location.hash)
exportRoot.gotoAndStop(document.location.hash.replace('#', ''));

//Use jQUery to listen to the hash change event and gotoAndStop to new location when event fires
$(window).on('hashchange', function() {
exportRoot.gotoAndStop(document.location.hash.replace('#', ''));
});
}
</script>
</head>

<body onload="init();" style="background-color:#D4D4D4">
<canvas id="canvas" width="1024" height="768" style="background-color:#FFFFFF"></canvas>
</body>
</html>

问题 2:过渡

就页面转换而言,我建议要么在时间轴中创建它们,要么调用 gotoAndPlay(FRAME_OF_THE_TRANSITION) 直到您开始更加熟悉 CreateJS 库以采用更面向对象的方法。

关于html - CreateJS - 针对特定关键帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20425729/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com