用Adobe animate写动画课件时,经常用到的代码
Adobe animate 软件中,写一个课件,需要元件,createjs代码。
一般的,用animate写课件时,会用到下列代码。
主要是用createjs代码来写的,不会的操作直接去createjs中文网查询API文档。
常用代码模板:
通常,在animate中编写代码时,会先写下面两句代码。
stage.enableMouseOver(); //当前舞台可点击
this.stop();
//this在这里代指舞台:stage。
/---------------------start------------------------------/
下列代码是要点击元件的特效函数,就是鼠标移到上面时,会动态的放大,鼠标离开后,会恢复到原来的位置。
调用的方法如下:
var buttom = this.buttom;//定义一个叫buttom的变量,让他等于this.buttom,第二个buttom是舞台上的元件名。
//在addEventListener监听事件中套用函数模板
buttom.addEventListener(“mouseover”, buttonover);
buttom.addEventListener(“mousedown”, buttondown);
buttom.addEventListener(“mouseout”, buttonout);
buttom.cursor = “pointer”; //鼠标停在元件上的时候变成手形状
//按钮样式改变
function buttonover(e) {
//移到按钮上时,放大按钮
var target = e.currentTarget;
createjs.Tween.get(target).to({
scale: 1.2
}, 300);
}
function buttondown(e) {
//点击按钮时,播放点击音效,变换点击大小
createjs.Sound.play(“clickb”);//这个音效,是animate里面,导入的音效的链接名,不需要自定义ID名。
var target = e.currentTarget;
createjs.Tween.get(target).to({
scale: 0.8
}, 500).to({
scale: 1
}, 500);
}
function buttonout(e) {
//离开按钮时,恢复原始状态
var target = e.currentTarget;
createjs.Tween.get(target).to({
scale: 1
}, 300);
}
/---------------------end------------------------------/
跨域问题:
一般是指浏览器为了安全问题而做的设定,不允许点击图像,而是点击像素。
所以为了解决这个问题,可以在点击的元件上面画一个像素图形,这样就可以点击了。
一般的模板如下:
//点击域函数
function buffer(button) {
var data = button.getTransformedBounds(); //获取传入的元素button的属性。
var rect = new createjs.Shape(); //定义一个图形变量。
rect.graphics.beginFill("red").drawRect(-data.width / 2, -data.height / 2, data.width, data.height);
//绘制蓝色矩形,定义位置与传入元素的位置相同。
button.addChild(rect); //将绘制的图形添加到传入元素中。
rect.alpha = 0.01; //作为点击域,颜色透明度接近于0,避免遮挡。
button.hitArea = rect; //设置图形为点击域
} //函数结尾
调用点击域函数
var buttom = this.buttom;//先定义变量,获取舞台上的元件名
buffer(buttom);//再调用点击域函数,给该元件添加点击域
//画线,这是画线函数,可以套用的,输入起点坐标和终点坐标,就可以画一条直线。
function connection(x1, y1, x2, y2) {
//x1,y1是初始位置,x2,y2是初始位置
//创建一个新舞台
//var canvas = document.createElement(‘canvas’);
var shape = new createjs.Shape();
graphics = shape.graphics; //起点位置
graphics.beginStroke(“white”); //线的颜色
graphics.setStrokeStyle(5); //线的粗细
graphics.moveTo(x2, y2); //终点
graphics.lineTo(x1, y1);
stage.addChild(shape); //将shape加入到舞台中
}
//随机数
var items1 = [1, 2, 3, 4]; //定义随机数的内容
var result = getRandomArrayElements(items1, 4); //随机获取定义的随机数内容
console.log(result);//输出以检测随机数是否获取正确
//随机函数(可用模板)
function getRandomArrayElements(arr, count) {
var shuffled = arr.slice(0),
i = arr.length,
min = i - count,
temp, index;
while (i-- > min) {
index = Math.floor((i + 1) * Math.random());
temp = shuffled[index];
shuffled[index] = shuffled[i];
shuffled[i] = temp;
}
return shuffled.slice(min);
}
定义数组:数组一般要初始化才能用。
var arr = new Array();//先定义变量为数组类型
var that = this;//给舞台定义一个别称
var n = 9;//给定任意一个整数。
for(var i=0;i<=n;i++)
{
arr[i] = that[“name”+i]//这个初始化数组适合数组形式的舞台元件名。类似于 a = this.name;
}
鼠标的监听事件:
addEventListener
用法如下:
buttom.addEventListener(“click”,function(){
//该元件的鼠标单击事件
//函数体,要执行的内容
});
//下列是帧事件
createjs.Ticker.setFPS(30); //每秒30帧
createjs.Ticker.addEventListener(“tick”, handleTick); //每帧执行事件
function handleTick(){
//每一帧的时候,需要执行的事件
//这是自定义的,只要写我们需要用到的功能即可,其他的网页会自己执行
}
//下列是播放音频的代码
//一般的,音频的id不需要我们自己去写,animate发布的时候,会自己写
new sound1 = new createjs.Sound.play(“sun_tips”);//创建一个音频变量,并用createjs.Sound.play()方法播放音频。引号的是音频的id,在animate中是连接名
sound1.on(“complete”, function () {
//这是sound1的播放完成的监听事件
//下列是sound1播放完后,需要执行的事件,可自由编写
new sound = createjs.Sound.play(“bg”, {
loop: -1
});
如果要停止播放音频,可以用puased属性,
即:sound.puased = true;//这是暂停
sound.puased = false;//这是继续播放
//这是一个数组元件的监听事件,元件以option数组命名
for (var i = 1; i <= 15; i++) {
option[i].p = i;//由于外面的i不能事实传递进入监听事件中,所以要用元件的一个属性p,将i传递进去。这里主要是想获取当前点击元件的下标
option[i].addEventListener(“click”, function (e) {
//function中添加了参数e,是为了能将外面的数据传入进来
var j = e.currentTarget.p;//定义一个变量,通过额的currentTarget.p属性,将传入的值给j。
}
});
}
//这是延迟函数,即延迟多久才执行,一般是毫秒为单位
setTimeout(function () {
drow.gotoAndStop(0);//这是指某一个影片剪辑的动画,从开始执行到第几帧结束
}, 3000);
createjs.Tween.get("对象名").wait(300).to({属性名:值}).call(函数名);
//createjs.Tween中,get是获取操作对象,wait是等待多长时间才执行,to 一般是修改属性,call一般是调用函数。
具体操作可以上createjs中文网的Tween中查询。