兰色精灵 发表于 2015-1-15 22:49:27

动画教程之Flash AS3教程:小游戏开辟实战实验-Flash actionscript

FlashScreensaversMaker能够迅速的将您的Flash作品转化为屏保程序。
后面解说了FlashAS3教程:Direction类和Dot类,后面都是实际的解说,这篇来一个实战,做一个相似坦克游戏的程序。
http://www.webjx.com/files/media/dirtanke.swf
这几天也写了一些类了,是驴子仍是骡子,拿出来遛一遛就晓得了,先看这个下面这个flash动画!

一个相似坦克游戏的demo程序
利用Direction类来举行偏向把持
利用Dot类来盘算间隔
用上Direction类和Dot类以后,这个demo程序变得非常复杂额。。
也没甚么好说,次要透过这个例子,让人人类熟习Direction类和Dot类的利用办法
不懂的能够在前面跟帖发问,妙手假如看到甚么有毛病的中央,请斧正出来,多谢指教

上面是fla的源代码:
CODE:
importindex.base.game.Direction;
importindex.base.events.DirectionEvent;
importindex.base.geom.Dot;

//舞台属性设置
stage.showDefaultContextMenu=false;
stage.align="TL";
stage.scaleMode="noScale";

//创立坦克
vartank:Tank=newTank;
tank.x=tank.y=250;
addChild(tank);

//创立绑定坦克的点
vardot:Dot=newDot;
dot.bind(tank);

//坦克挪动
vardirTank:Direction=newDirection(stage);
//炮台动弹
vardirTower:Direction=newDirection(stage,true,87,83,65,68);

//坦克炮台事务
dirTank.addEventListener(DirectionEvent.DO,doTankFun);
dirTower.addEventListener(DirectionEvent.DO,doTowerFun);

//坦克挪动
functiondoTankFun(e:DirectionEvent):void{
if(e.up){
dot.go(2,true);
}
if(e.down){
dot.go(-2,true);
}
if(e.left){
tank.rotation-=2;
}
if(e.right){
tank.rotation+=2;
}
if(tank.x<0)tank.x=0;
if(tank.y<0)tank.y=0;
if(tank.x>stage.stageWidth)tank.x=stage.stageWidth;
if(tank.y>stage.stageHeight)tank.y=stage.stageHeight;
}

//是不是能够发射炮台,枪弹
varisBullet:Boolean=true;
varisShell:Boolean=true;
//炮台发射动弹
functiondoTowerFun(e:DirectionEvent):void{
if(e.up&&isBullet){
varbullet:Bullet=newBullet;
bullet.x=tank.x;
bullet.y=tank.y;
bullet.rotation=tank.rotation+tank.tower.rotation;
bullet.addEventListener(Event.ENTER_FRAME,bulletFun);
addChild(bullet);

isBullet=false;
setTimeout(function(){isBullet=true},200);
}
if(e.down&&isShell){
varshell:Shell=newShell;
shell.x=tank.x;
shell.y=tank.y;
shell.rotation=tank.rotation;
shell.addEventListener(Event.ENTER_FRAME,shellFun);
addChild(shell);

isShell=false;
setTimeout(function(){isShell=true},500);
}
if(e.left){
tank.tower.rotation-=5;
}
if(e.right){
tank.tower.rotation+=5;
}
}

//炮台
functionshellFun(e:Event):void{
vartmp:Shell=e.currentTargetasShell;
vard:Dot=newDot(tmp.x,tmp.y,tmp.rotation);
d.bind(tmp);
d.go(4,true);
if(tmp.x<0||tmp.x>stage.stageWidth||tmp.y<0||tmp.y>stage.stageHeight){
removeChild(tmp);
tmp.removeEventListener(Event.ENTER_FRAME,shellFun);
}

tmp=null;
d=null;
}

//枪弹
functionbulletFun(e:Event):void{
vartmp:Bullet=e.currentTargetasBullet;
vard:Dot=newDot(tmp.x,tmp.y,tmp.rotation);
d.bind(tmp);
d.go(5,true);
if(tmp.x<0||tmp.x>stage.stageWidth||tmp.y<0||tmp.y>stage.stageHeight){
removeChild(tmp);
tmp.removeEventListener(Event.ENTER_FRAME,bulletFun);
}

tmp=null;
d=null;
}别的注重源代码,有个中央屡次对tank的tower属性就行援用,而且前往他的x,y大概扭转值,有人就会问了,as3不是不撑持相似mc那样的间接会见显现工具,为何我这儿却能够?
乐意是我把素材绑定在Tank类上,而且对Tank类做了以下编写:
CODE:
package{

importflash.display.Sprite;

publicclassTankextendsSprite{

publicfunctionTank(){

}

publicfunctiongettower():Sprite{
returntowerMc;
}
}
}光看这个类,大概你仍是不分明,是甚么缘故原由,为何会多出来一个towerMc出来,具体的缘故原由,请本人下载供应的源文件,下载上去看看吧。。不懂跟帖问!
点击下载源文件

AdobeFlashPlayerforIE是IE浏览器专用的flash播放器插件,可以播放AdobeFlash制作的flash文件。

再见西城 发表于 2015-1-17 18:56:31

各类广告形式,相信大部分网民基本都关注过,而毋庸置疑,一个画面精美,生动活泼的互动Flash动画广告,比其他广告形式更加吸引你我的眼球。这就是Flash动画的优势。

兰色精灵 发表于 2015-1-22 15:12:07

一个物体从一个角(关键祯1)移动到另一个角(关键祯2)。然后tweening在关键祯之间填充祯,从而使物体可以在屏幕上优雅地运动。

金色的骷髅 发表于 2015-2-6 18:58:00

商业上的优势——品牌flash的创造;公司企业的flash宣传;flash技术在电视的应用

仓酷云 发表于 2015-2-18 08:49:27

在与制作传统动画相比较的同时,flash具有便捷、节省人力财力,节约时间、推广方便的许多优势。但与此同时它也具有一点的缺点。

灵魂腐蚀 发表于 2015-3-12 21:04:50

流技术让用户在下载的同时看到动画(与全部下载后再观看相反)。但是这也不是什么新技术 - Web一出现就有这种技术了。

透明 发表于 2015-3-20 04:24:33

不能设置“alt”属性,失去了一次被搜说引擎检索到的机会。
页: [1]
查看完整版本: 动画教程之Flash AS3教程:小游戏开辟实战实验-Flash actionscript