??????????keith peters???making things move???????????????????????????????webstudio?????????????
Actionscript animation????
??????bit-101.com?????????making things move????????????????????????????????????????????????????????????????????????making things move…????????????keith peters???????????????????????????????????????????????????????????????????????????????????????????????????
1???
????????????????????????????????FALSH?????????????????????????????????????????????????????????????????????????????????????????????????onEnterFrame??????setInterval,???????????????????????????????????????
?x???????????vx,????????????????????
???
???
| ´úÂë: | |
vx=5;
onEnterFrame=function(){
my_mc._x+=vx;//??????my_mc._x=my_mc._x+vx;
}
| |
??:a0001.swf
????MC????5????????????????????vx???????
???????????????????????????????y??????????
| ´úÂë: | |
vy=5;
onEnterFrame=function(){
my_mc._y+=vy;//??????my_mc._y=my_mc._y+vy;
}
| |
????????????????????????????
????????????????????????????x??y????????????????????????????????????????????????????????????
???
| ´úÂë: | |
vx=5;
vy=5;
onEnterFrame=function(){
my_mc._x+=vx;
my_mc._y+=vy;
}
| |
???a0002.swf
?????????x,y???????????????????J?????vx,vy??5????????????45????????vx,vy?????????????????????????????????vx,vy??????
???????????????????????????????????????vx,vy????????45???????????????????????????????????????????????????????????????????????????????????????
?1? ?????=??*PI/180;
?2? ?????=??*180/PI?
?????????????????????????????????????????????????????????????????????????????x?y ??????????vx,vy??????speed;
???x??????????vx=Math.cos(radians)*speed;?y???????vy=Math.sin(radians)*speed;
???
| ´úÂë: | |
speed=10;
angle=15;
radians=angle*Math.PI/180;
onEnterFrame=function(){
vx=Math.cos(radians)*speed;
vy=Math.sin(radians)*speed;
my_mc._x+=vx;
my_mc._y+=vy;
}
| |
???a0003.swf
???????????????15??????????angle???????????????????????????
2????
???????????????????????????????????????????????vt=vo+at?FLASH?????????????????????????????????????????????????????????ax,???x????????vx=vx+ax,???vx+=ax;????????0;
???
| ´úÂë: | |
ax=0.2;
vx=0;
onEnterframe=function(){
vx+=ax;
my_mc._x+=vx;
}
| |
???a0004.swf
??????????????????????????????????????????????????????????????y????????
???
| ´úÂë: | |
ax=0.2;
ay=0.1;
vx=0;
vy=0;
onEnterFrame=function(){
vx+=ax;
vy+=ay;
my_mc._x+=vx;
my_mc._y+=vy;
}
| |
???a0005.swf
??????????????????????????????????????????????????????????????????????????????????????
3???
????????????????????????y?????????????grav,??????????
???
| ´úÂë: | |
grav=0.5
vy=0;
onEnterFrame=function(){
vy+=garv;
my_mc._y+=vy;
}
| |
???a0006.swf
4.??
??????????????????????????FLASH???????????????????????????????????????????????????????????????????????x??????vx*=-1;??????????????vx=-vx;
???
| ´úÂë: | |
//????
top=0;
left=0;
right=400;
bottom=300;
vx=10;
vy=10;
onEnterFram=function(){
my_mc._x+=vx;
my_mc._y+=vy;
//??????????????????????????????????????
if(my_mc._x+my_mc._width/2>right){
my_mc._x=right-my_mc._width/2;
vx*=-1;
}
if(my_mc._x-my_mc._width/2<left){
my_mc._x=left+mc_mc._width/2;
vx*=-1;
}
if(my_mc._y-my_mc._height/2<top){
my_mc._y=top+my_mc._height/2;
vy*=-1;
}
if(my_mc._y+my_mc._height/2>bottom){
my_mc._y=bottom-my_mc._height/2;
vy*=-1;
}
}
| |
???a0007.swf
??????????????????????
*?????????my_mc._x,my_mc._y??????my_mc?????????my_mc????????????????????????????????my_mc??????????
????????
???????????????????????????????vx*=-1;??????????????????????????????????????????????????????????????????????1??????????????????????1???????????????????????vx*=-0.8;?????????????????????????
???
| ´úÂë: | |
top=0;
left=0;
right=400;
bottom=300;
//?????????garv
garv=.5;
vx = 10;
vy = 10;
onEnterFrame = function () {
//y???????
vy+=garv;
my_mc._x += vx;
my_mc._y += vy;
if(my_mc._x+my_mc._width/2>right){
my_mc._x=right-my_mc._width/2;
vx*=-0.8;
}
if(my_mc._x-my_mc._width/2<left){
my_mc._x=left+my_mc._width/2;
vx*=-0.8;
}
if(my_mc._y-my_mc._height/2<top){
my_mc._y=top+my_mc._height/2;
vy*=-0.8;
}
if(my_mc._y+my_mc._height/2>bottom){
my_mc._y=bottom-my_mc._height/2;
vy*=-0.8;
}
};
| |
???a0008.swf
5.???
??????????????????????????????????1,????????????????????????????
???
| ´úÂë: | |
fraction=0.95;
vx=10;
vy=10;
onEnterFrame=function(){
vx*=fraction;
vy*=fraction;
my_mc._x+=vx;
my_mc._y+=vy;
}
| |
???a0009.swf
6?????
???????????????????????????????????????????????????????????????????????????????????????
???????????startDrag(),???????????????????????????????????stopDrag(),????????????????
???
| ´úÂë: | |
top=0;
left=0;
right=400;
bottom=300;
garv=.5;
vx = 10;
vy = 10;
onEnterFrame = function () {
//??????????????????????????
if(!dragging){
vy+=garv;
my_mc._x += vx;
my_mc._y += vy;
if(my_mc._x+my_mc._width/2>right){
my_mc._x=right-my_mc._width/2;
vx*=-0.8;
}
if(my_mc._x-my_mc._width/2<left){
my_mc._x=left+my_mc._width/2;
vx*=-0.8;
}
if(my_mc._y-my_mc._height/2<top){
my_mc._y=top+my_mc._height/2;
vy*=-0.8;
}
if(my_mc._y+my_mc._height/2>bottom){
my_mc._y=bottom-my_mc._height/2;
vy*=-0.8;
}
//????????????????????????my_mc??????my_mc???????????????
}else{
vx=my_mc._x-oldx;
vy=my_mc._y-oldy;
oldx=my_mc._x;
oldy=my_mc._y;
}
};
my_mc.onPress=function(){
this.startDrag();
dragging=true;
}
my_mc.onRelease=function(){
this.stopDrag();
dragging=false;
}
| |
???a0010.swf
7.easing??
???easing??????????????????????????????easing.????????easing???????www.robertpenner.com????????????????????????mm???transition???tween??
???
| ´úÂë: | |
targetx = 200;
targety = 150;
onEnterFrame = function () {
dx=targetx-my_mc._x;
dy=targety-my_mc._y;
my_mc._x+=dx*.3;
my_mc._y+=dy*.3;
};
| |
???a0011.swf
8?Spring??
spring?????easing???????easing?cool????????????????????????????????????????????????
???
| ´úÂë: | |
var targetx = 200;
var targety = 150;
fraction = .9;
vx = 0;
vy = 0;
onEnterFrame = function () {
if (!dragging) {
//???????????
dx = targetx-my_mc._x;
dy = targety-my_mc._y;
//???
vx += dx*.3;
vy += dy*.3;
//????
vx *= fraction;
vy *= fraction;
my_mc._x += vx;
my_mc._y += vy;
}
};
my_mc.onPress = function() {
this.startDrag();
dragging = true;
};
my_mc.onRelease=function() {
this.stopDrag();
dragging = false;
};
| |
???a0012.swf
spring ?????
??????spring ??????????????????????????????????drawing api?????????????
???
| ´úÂë: | |
var targetx = 200;
var targety = 150;
fraction = .9;
vx = 0;
vy = 0;
onEnterFrame = function () {
dx = _xmouse-my_mc._x;
dy = _ymouse-my_mc._y;
vx += dx*.3;
vy += dy*.3;
vx *= fraction;
vy *= fraction;
my_mc._x += vx;
my_mc._y += vy;
//???mouse??
clear();
lineStyle(1,0,100);
moveTo(_xmouse,_ymouse);
lineTo(my_mc._x,my_mc._y);
};
| |
???a0013.swf
?????????????????????????????????????????????
Spring ?
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????J
???
| ´úÂë: | |
fraction = .7;
grav=20;
my_mc.vx = 0;
my_mc.vy = 0;
my_mc1.vx = 0;
my_mc1.vy = 0;
my_mc2.vx = 0;
my_mc2.vy = 0;
onEnterFrame = function () {
clear();
lineStyle(1, 0, 100);
moveTo(_xmouse, _ymouse);
spring(my_mc, _xmouse, _ymouse);
spring(my_mc1, my_mc._x, my_mc._y);
spring(my_mc2, my_mc1._x, my_mc1._y);
};
function spring(mc, x, y) {
dx = x-mc._x;
dy = y-mc._y;
mc.vx += dx*.3;
mc.vy += dy*.3;
mc.vy += grav;
mc.vx *= fraction;
mc.vy *= fraction;
mc._x += mc.vx;
mc._y += mc.vy;
lineTo(mc._x, mc._y);
}
| |
???a0014.swf
?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????keith peters??????????????????????????????????????????????????????keith peters???bit-101.com.?????keith peters???making things move…????desinger??????????
---????????????????????????????????google???????????????????????????---
?????
|