二维图形技术上机复习资料.docx
《二维图形技术上机复习资料.docx》由会员分享,可在线阅读,更多相关《二维图形技术上机复习资料.docx(35页珍藏版)》请在冰点文库上搜索。
![二维图形技术上机复习资料.docx](https://file1.bingdoc.com/fileroot1/2023-5/1/cce41f65-a4c4-4850-8422-edaec9710a99/cce41f65-a4c4-4850-8422-edaec9710a991.gif)
二维图形技术上机复习资料
二维图形技术复习资料
ByBW
1.飞机沿轨迹运动
importflash.events.MouseEvent;
stop();
plane.stop();
Object(this).Butn.addEventListener(MouseEvent.CLICK,airplanePlay);
functionairplanePlay(e:
MouseEvent)
{
gotoAndPlay
(2);
plane.play();
}
引导层是轨迹,飞机是被引导层
选中飞机时的样子
2.计算两点距离
importincludes.CPoint;
varpoint1:
CPoint=newCPoint(12,30,50);
varpoint2:
CPoint=newCPoint(2,3,5);
trace("点1的坐标(",point1.xx,",",point1.yy,",",point1.zz,")");
trace("点2的坐标(",point2.xx,",",point2.yy,",",point2.zz,")");
functionDistance(p1:
CPoint,p2:
CPoint):
Number
{
varxvalue=p1.xx-p2.xx;
varyvalue=p1.yy-p2.yy;
varzvalue=p1.zz-p2.zz;
vardis:
Number=Math.sqrt(xvalue*xvalue+yvalue*yvalue+zvalue*zvalue);
returndis;
}
vardisvalue=Distance(point1,point2);
trace("thedistanceofbetweenp1andp2is",disvalue);
3.简单数据类型1
varnum:
int=6789//定义数字
vartemp:
int=num//取得数字的拷贝
vara:
int=temp/1000//得到千位数
temp=temp-a*1000//去掉千位
varb:
int=temp/100//得到百位数
temp=temp-b*100//去掉百位
varc:
int=temp/10//得到十位数
temp=temp-c*10//去掉十位
vard:
int=temp//得到个位数
trace(a,b,c,d)
4.简单数据类型2
varnum:
int=6789//定义数字
varstr=String(num)//数字转换为字符串
vara:
int=str.charAt(0)//取得索引0处的字符即6
varb:
int=str.charAt
(1)//取得索引1处的字符即7
varc:
int=str.charAt
(2)//取得索引2处的字符即8
vard:
int=str.charAt(3)//取得索引3处的字符即9
trace(a,b,c,d)//输出数位
5.按钮事件
importflash.events.MouseEvent;
Object(this).left_button.addEventListener(MouseEvent.CLICK,movex);
//定义movex函数
varspeed:
int=5;
functionmovex(e:
MouseEvent):
void
{
Object(this).car_movieclip.x-=speed;
}
Object(this).right_button.addEventListener(MouseEvent.CLICK,movexright);
functionmovexright(e:
MouseEvent)
{
Object(this).car_movieclip.x+=speed;
//trace(Object(this).car_movieclip.x);
if(Object(this).car_movieclip.x>stage.stageWidth)
{
Object(this).car_movieclip.x=-250;
}
}
//trace(stage.stageWidth,stage.stageHeight);
Object(this).alpha2_button.addEventListener(MouseEvent.CLICK,reducealpha);
functionreducealpha(e:
MouseEvent)
{
if(Object(this).car_movieclip.alpha>0)
{
Object(this).car_movieclip.alpha-=0.1;
}else
Object(this).car_movieclip.alpha=1;
}
Object(this).alpha1_button.addEventListener(MouseEvent.CLICK,addalpha);
functionaddalpha(e:
MouseEvent)
{
if(Object(this).car_movieclip.alpha<1)
{
Object(this).car_movieclip.alpha+=0.1;
}
}
Object(this).rotation_button.addEventListener(MouseEvent.CLICK,rotationx);
functionrotationx(e:
MouseEvent)
{
Object(this).car_movieclip.rotationX+=15;
}
Object(this).visible_button.addEventListener(MouseEvent.CLICK,hidemovieclip);
functionhidemovieclip(e:
MouseEvent)
{
if(Object(this).car_movieclip.visible==true)
{
Object(this).car_movieclip.visible=false;
}else
Object(this).car_movieclip.visible=true;
}
选中汽车
alpha+的名字是alpha1_button
alpha-的名字是alpha2_button
hide的名字是visible_button
6.创建影片剪辑类
importflash.display.MovieClip;
importflash.events.MouseEvent;
vari:
int;
for(i=1;i<=3;i++)
{
varmc:
MovieClip=newpigtopig;
this.addChild(mc);
mc.x=i*150;
mc.y=200;
mc.addEventListener(MouseEvent.CLICK,clickHandler);
}
functionclickHandler(e:
MouseEvent):
void
{
e.target.stop();
e.target.rotation+=20;
}
gif的图片,动画点击时候则定在点击的时候
7.倒计时动画
importflash.utils.Timer;
importflash.events.TimerEvent;
importflash.events.MouseEvent;
varanmationtime:
Number=30;
varrepeatnumber:
int=mc.totalFrames;
vartimeinterval:
Number=anmationtime/repeatnumber*1000;
varmy_timer:
Timer=newTimer(timeinterval,repeatnumber);
my_timer.start();
my_timer.addEventListener(TimerEvent.TIMER,onplay);
functiononplay(e:
TimerEvent)
{
mc.nextFrame();
varcountnumber:
int=my_timer.currentCount;
vart:
Number=30-countnumber*timeinterval/1000;
this.time_text.text=t.toFixed
(1);
}
this.restart_but.addEventListener(MouseEvent.CLICK,restart);
functionrestart(e:
MouseEvent)
{
mc.gotoAndPlay
(1);
my_timer.reset();
my_timer.start();
}
Object(this).stop_but.addEventListener(MouseEvent.CLICK,stopplay);
functionstopplay(e:
MouseEvent)
{
my_timer.stop();
}
显示倒计时
蓝色按钮stop_but(倒计时停止)
褐色按钮restart_but(倒计时重新开始)
mc影片剪辑
图层四:
首帧和末帧都只是一个进度条的框框
图层三代码:
stop()
图层二:
遮罩层,创建的是补间形状,红色的从无到有
图层一:
整个都是一个彩虹条
图层一二分别做完以后再设置遮罩层
8.键盘事件
importflash.events.KeyboardEvent;
importflash.ui.Keyboard;
constKEY_LEFT:
uint=37;
constKEY_RIGHT:
uint=39;
Object(this).plane_mc.stop();
varspeed:
int=5;
stage.addEventListener(KeyboardEvent.KEY_DOWN,moving);
functionmoving(e:
KeyboardEvent)
{
varkeynumber:
uint=e.keyCode;
trace(keynumber);
if(keynumber==KEY_LEFT)
{
if(Object(this).plane_mc.x>-Object(this).plane_mc.width)
{
Object(this).plane_mc.x-=speed;}
elseObject(this).plane_mc.x=stage.stageWidth;
}
if(keynumber==KEY_RIGHT)
{
if(Object(this).plane_mc.x{
Object(this).plane_mc.x+=speed;}
elseObject(this).plane_mc.x=-Object(this).plane_mc.width;
}
}
选中飞机plane_mc
影片剪辑中的飞机每一帧的螺旋桨都不是同样的角度,整体就是一个螺旋桨在动的gif动画
9.按钮图片切换
importflash.events.MouseEvent;
importflash.display.MovieClip;
importflash.display.Bitmap;
importflash.display.BitmapData;
Object(this).t_shirt_button.addEventListener(MouseEvent.CLICK,loadt_shirt);
varpic_movieclip:
MovieClip=newMovieClip();
functionloadt_shirt(e:
MouseEvent)
{
varbitmapsource:
BitmapData=newshirt(240,216);
pic_movieclip.graphics.beginBitmapFill(bitmapsource);
pic_movieclip.graphics.drawRect(0,0,240,216);
addChild(pic_movieclip);
pic_movieclip.x=100;
pic_movieclip.y=50;
}
Object(this).kuzi_button.addEventListener(MouseEvent.CLICK,loadt_kuzi);
functionloadt_kuzi(e:
MouseEvent)
{
varbitmapsource:
BitmapData=newkuzibitmap(240,216);
pic_movieclip.graphics.beginBitmapFill(bitmapsource);
pic_movieclip.graphics.drawRect(0,0,240,216);
addChild(pic_movieclip);
pic_movieclip.x=100;
pic_movieclip.y=50;
}
Object(this).bag_button.addEventListener(MouseEvent.CLICK,loadbag);
functionloadbag(e:
MouseEvent)
{
varbitmapsource:
BitmapData=newCbag(240,216);
pic_movieclip.graphics.beginBitmapFill(bitmapsource);
pic_movieclip.graphics.drawRect(0,0,240,216);
addChild(pic_movieclip);
pic_movieclip.x=100;
pic_movieclip.y=50;
}
选中上衣:
按钮t_shirt_button
选中裤子:
按钮kuzi_button
选中包包:
按钮bag_button
10.电子时钟
importflash.text.TextField;
importflash.events.Event;
functioncreatTextField(text_x:
Number,text_y:
Number,text_width:
Number,text_height:
Number):
TextField
{
varmy_textfield:
TextField=newTextField();
my_textfield.x=text_x;
my_textfield.y=text_y;
my_textfield.height=text_height;
my_textfield.width=text_width;
my_textfield.textColor=0xff0000;
my_textfield.border=true;
//my_textfield.autoSize="";
//my_textfield.autoSize=TextFieldAutoSize.CENTER;
addChild(my_textfield);
returnmy_textfield;
}
vardate_text:
TextField=creatTextField(50,200,100,50);
vartime_text:
TextField=creatTextField(50,260,100,50);
varweek_text:
TextField=creatTextField(50,320,100,50);
varmy_date=newDate();
varyear_value=my_date.getFullYear();
varmonth_value=my_date.getMonth()+1;
varday_value=my_date.getDate();
date_text.text=year_value+"-"+month_value+"-"+day_value;
varhour_value=my_date.getHours();
varmin_value=my_date.getMinutes();
varsec_value=my_date.getSeconds();
time_text.text=hour_value+":
"+min_value+":
"+sec_value;
/*time_text.addEventListener(Event.ENTER_FRAME,updatetime);
functionupdatetime(e:
Event)
{
varuphour_value=my_date.getHours();
varupmin_value=my_date.getMinutes();
varupsec_value=my_date.getSeconds();
time_text.text=uphour_value+":
"+upmin_value+":
"+upsec_value;
}*/
Varweek_array:
Array=newArray("sun","mon","tue","wed","thu","fri","sat");
varday_num=my_date.getDay();
week_text.text=week_array[day_num];
Object(this).hour_pin.rotation=hour_value*360/12;
Object(this).minute_pin.rotation=min_value*360/60;
Object(this).second_pin.rotation=sec_value*360/60;
trace(hour_value);
图层三:
时针分针和秒针
图层二:
钟表盘
图层一:
背景
三个指针名字:
hour_pinsecond_pinminute_pin三个影片剪辑
11.动态文本(和电子时钟显示时间差不多)
importflash.text.TextFormatAlign;
vardayofweek:
Array=newArray("SUN","MON","TUS","WED","TUR","FRI","SAT");
varmy_day:
Date=newDate();
weekofnum.text=dayofweek[my_day.day];//利用文本框属性定义
functionCreatTextField(xx:
int,yy:
int,wd:
int,heigh:
int):
TextField
{
vardynamic_text:
TextField=newTextField();
dynamic_text.x=xx;
dynamic_text.y=yy;
dynamic_text.width=wd;
dynamic_text.height=heigh;
dynamic_text.border=true;
dynamic_text.textColor=0x0000ff;
dynamic_text.background=true;
dynamic_text.backgroundColor=0xffffff;
dynamic_text.type=TextFieldType.DYNAMIC;
addChild(dynamic_text);
returndynamic_text;
}
varmy_text:
TextField=CreatTextField(50,50,80,30);//动态创建文本框
my_text.text=dayofweek[my_day.day];
vardate_text:
TextField=CreatTextField(50,100,80,30);//动态创建文本框
varmonth_number:
Number=my_day.getMonth()+1;
date_text.text=String(my_day.fullYear)+"-"+month_number+"-"+my_day.date;
vartime_text:
TextField=CreatTextField(50,150,80,30);
//动态创建文本框
time_text.text=my_day.getHours()+":
"+my_day.getMinutes()+":
"+my_day.getSeconds();
第一帧只是一个选框
12.电子相册
this.stop();
btnCon(backBtn,1);
backBtn.addEventListener("click",onPlay);
forwardBtn.addEventListener("click",onPlay);
functiononPlay(e:
MouseEvent){
if(e.target==backBtn)
{
this.prevFrame()
}elseif(e.target==forwardBtn)
{
this.nextFrame()
}
btnCon(backBtn,1);
btnCon(forwardBtn,this.totalFrames);
}
functionbtnCon(obj,frameNum)
{
if(this.currentFrame==frameNum)
{
obj.alpha=.5
obj.enabled=false;
}else
{
obj.alpha=1
obj.enabled=true;
}
}
button层上一张和下一张的按钮
bg层按钮后面的灰色背景条(只是个装饰)
Picture层每一帧都是一张背景图案
上一张的按钮:
backBtn
下一张的按钮:
forwardBtn
13.函数参数和调用
第一个as:
trace(this.speed);
第二个as:
functionMax(x:
int,y:
int):
int
{
if(x>y)
returnx;
returny;
}
trace(Max(45,80));
functiononC