密码学模拟试题as

2025-01-31 版权声明 我要投稿

密码学模拟试题as(共7篇)

密码学模拟试题as 篇1

解:程序:

#include#include#includeint main{int i;char *p = ”123456“;char arr[10];for (i = 0; i < 3; i++){printf(”请输入密码:“);scanf(”%s“,arr);if (strcmp(p,arr)==0){break;}else {printf(”密码错误!n“);}}if (i==3){printf(”三次密码输入错误,系统将在3秒后自动关闭!n“);Sleep(3000);}else if(i<3){printf(”恭喜你登录成功!n“);}return 0;}

结果1:

请输入密码:123567

密码错误!

请输入密码:65848

密码错误!

请输入密码:135268

密码错误!

三次密码输入错误,系统将在3秒后自动关闭!

请按任意键继续. . .

结果2:

请输入密码:123456

恭喜你登录成功!

密码学模拟试题as 篇2

1 暴力破解用户密码

黑客首先收集受害者的有关资料, 如生日、电话、爱好等, 将这些有可能出现在密码中的信息进行组合, 然后逐一尝试, 就有可能猜测出对方可能使用的密码。当然, 信息的组合不必黑客手工进行, 可借助密码字典生成器, 将组合规则设定好, 再加入特殊的需求信息, 即可自动生成密码字典, 再用相关黑客工具调用密码字典进行密码破解的尝试, 一旦成功, 黑客会实施进一步的入侵, 若破解的不是超级用户密码, 黑客还可利用其它漏洞想办法进行提权。

下面以SMBCrack为例, 介绍暴力破解的实施与防护。若受害者的计算机开放了TCP的139或445端口, 则密码很可能会被黑客此漏洞进行破解。其中, 139端口的作用是允许用户通过网上邻居访问局域网中的共享文件或共享打印机。445端口则是在Windows 2000 Server或Windows Server 2003中提供与139端口完全相同的作用。

1.1 暴力破解模拟

启动两台虚拟机, A机:win2003, B机:win2003。黑客将在A机上利用SMBCrack工具破解B机的windows用户及密码。

(1) 在B机上创windows登录用户及密码。B机使用者张三, 生日1 9 8 0.5.1 2, 由于缺乏安全意识, 创建用户名:z h a n g s a n, 密码:800512, 与他的姓名及生日相关。

(2) 在B机查看开放的端口:netstat an, 可以看到, 139和445端口都打开了, 因此, 通过这两个端口的入侵方式都可行。

(3) 在A机的文件夹smbcrack2中, 创建用于密码破解的用户列表文件user.txt和密码字典文件pass.dic。其中文件user.txt用于存放猜测的用户名, 包含常见用户名及zhangsan等搜集到的可用于用户名的信息;通过密码字典生成器, 生成用于猜测密码的字典文件pass.dic, 其中除了字符数字的排列组合, 还包含了搜集到的用户生日等相关信息的所有可能组合, 如:800512这样的密码。

(4) 在A机运行smbcrack2, 借助用户列表文件和密码字典文件, 通过139端口探测对方用户名及密码, 命令为:smbcrack2-i 192.168.1.3-u user.txt-p pass.dic, 若对方的139端口开放, 并且user.txt和pass.dic中存在相应的用户名和密码, 则破解成功。

(5) 类似的, 若对方开放了445端口, 还可通过此端口的漏洞进行密码破解, 命令是:smbcrack2-i 192.168.1.3-u user.txtp pass.dic-P 1。

(6) 获取对方密码后, 可进一步控制对方, 如:黑客在A机利用获取的用户名及密码远程调用B机的cmd, 可用以下外部命令实现:psexec192.168.1.3-u 405-p test4 cmd.exe。

1.2 暴力破解的防御

针对黑客的攻击, 主要的防御方法如下:

(1) 启动帐户锁定策略。

暴力破解采用从用户字典和密码字典中, 抽取出可能的用户名和密码逐一比对的方式进行, 若仅允许用户密码出错三次, 第四次出错, 则锁定帐户, 那么, 黑客能猜中密码的可以性就很小了。方法是:点击“开始/管理工具/本地安全策略”, 选中“安全设置/帐户策略/帐户锁定策略”, 双击“帐户锁定阈值”, 将值设置为3。虚拟机模拟:B机按以上方法进行设置后, 在A机中, 打开pass.dic文件, 将真实密码800512, 放置在第三个位置之后, 存盘退出后, 再次通过smbcrack2进行对B机的密码破解, 可以观察到, 破解失败。

(2) 关闭139端口。

smbcrack2破解密码的方法之一是利用对方开放了139端口的漏洞, 只要将139端口关闭, 则黑客无法通过此渠道实施攻击了。方法是:右击“网上邻居”选“属性”, 右击“本地连接”选“属性”, 选“Internet协议 (TCP/IP) ”属性, 点击“高级”, 选中“WINS”选项卡, 选择“禁用TCP/IP上的NetBIOS”项, 就关闭139端口了。

虚拟机模拟:第一、B机通过虚拟软件的快照功能, 恢复快照, 返回上例中启用帐户锁定策略之前的状态, 测试:A机通过smbcrack2借助139端口对B机进行的密码破解, 破解成功;第二、B机采用以上介绍方法关闭139端口, 用netstat an命令观察, 可发现139端口已关闭;第三、A机通过smbcrack2借助139端口对B机进行的密码破解, 破解失败;第四、因为B机的445端口倘未关闭, 所以此时, A机通过smbcrack2借助445端口对B机进行的密码破解, 破解成功。

(3) 关闭445端口。

上例中, A机已不能通过139端口对B机实施密码破解, 但仍可通过445端口成功破解, 因此, 还需要关闭445端口。方法如下:运行regedit, 启动注册表编辑器, 在以下注册表项中:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNetBTParameters

添加一个键值, 类型为:D W O R D, 名称为:S M B D e v i c e Enabled, 值为:0。保存后, 重启B机, 重启之后, 445端口关闭。

虚拟机模拟:第一、B机采用以上介绍方法关闭445端口, 用netstat an命令观察, 可发现445端口已关闭;第二、A机通过smbc rack2借助445端口对B机进行的密码破解, 破解失败。

2 网络嗅探用户密码

当用户采取相应的防御措施后, 黑客将无法用前面介绍的暴力破解方法获取用户密码。但可通过抓包软件, 实时捕获在网络中传输的诸如FTP、E-Mail、Telnet等明文密码。在网络嗅控应用中, 若采用的互联设备是集线器, 因集线器是通过广播的方式转发数据的, 所以所有的客户机都会收到包括密码在内的信息;若互联设备是交换机, 则黑客需修改交换机的配置, 将自己所连端口设置为镜像端口, 若黑客无权修改交换机, 则需通过运行ARP欺骗软件, 欺骗其它计算机, 使它们的数据都要经黑客所在计算机转发, 达到窃取密码的目的。下面通过虚拟机模拟集线器互联窃取密码的过程:

2.1 通过Wireshark嗅探FTP用户名及密码

(1) 启动三台虚拟机, 将它们连接到同一集线器中, 为它们设置IP地址, 测试相互间能ping通; (2) 在A机安装和启用FTP服务, 创建FTP用户名:user1和密码123456; (3) 在B机安装Wireshark, 选中网卡, 开启侦听状态; (4) 在C机通过用户和密码访问FTP服务器, 由于B机上的抓包软件正在抓包, 因此, 用户名和密码通过网络传输时会被实时捕获到。 (5) 在B机停止Wireshark抓包, 输入筛选条件“ftp”, 可查看到捕获到的FTP用户名“user1”和密码“123456”。

2.2 通过Wireshark嗅探邮箱用户名及密码

(1) 利用虚拟机的快照功能, 将上例用到的虚拟机恢复到原始状态, 测试相互间能ping通; (2) 在A机安装邮件服务WinWebMail通过“域名管理”, 新增域名lcvc.cn, 通过“系统设置”, 新增用户user1@lcvc.cn, 密码1234;新增用户user2@lcvc.cn, 密码4321。 (3) 在B机安装Wireshark, 选中网卡, 开启侦听状态; (4) 在A机启动OE设置默认用户为user1@lcvc.cn, POP3服务器和SMTP服务器都设为A机的IP地址。点击“发送/接收”按钮, 能正常工作。 (5) 在C机启动OE, 设置默认用户为user2@lcvc.cn, POP3服务器和SMTP服务器都设为A机的IP地址。点击“发送/接收”按钮, 能正常工作。 (6) 在B机停止Wireshark抓包, 输入筛选条件“pop”, 可查看到捕获到的邮件用户名“user2”和密码“4321”, 却捕获不到用户“user1”。这是因为user1位于邮件服务器上, 接收邮件时的用户验证信息不需要在网络上传输, 而user2与邮件服务器存在于同一局域网中, 接收邮件时的身份验证的信息会在网络上传输, 因此会被抓包软件捕获。

可见, 包括密码在内的明文信息在网络中传输时, 会被网络中的抓包软件所捕获, 为了安全, 可通过加密的方式传输信息。如采用加密的https取代明文的http, 加密的SSH取代明文的telnet。

参考文献

[1]石淑华, 池瑞楠.计算机网络安全技术 (第3版) [M].人民邮电出版社, 2012.

比较句型“as ... as” 篇3

As②前后的形容词相同但系动词不同时,只省去as②后的形容词

当as②后的从句中出现的系动词与as②前的主句所使用的系动词不同(注:这里是指系动词的原形或时态不同,人称和数的不同不包括在内,下同),但形容词相同时,我们可以省去as②后的形容词。但是不能省去as②后的系动词。在这种情况下,上文中所说的核心句型应修正如下:

句型一:A +系动词1 + as①+形容词+ as②+ B +系动词2

这里采用“系动词1”和“系动词2”,以表明两个系动词是不同的。比如,有的人看起来要比实际年龄大,我们可以用英语表达成:

1.Mike is not as old as he looks.

迈克的实际年龄没有他看起来那么大。

解析:这句话是说迈克面相生得有点老气横秋。这里的“he looks”后省略了形容词old。也就是说,上面的句子完整的写法应该是:“Mike is not as old as he looks old.”因为as②后的形容词与其前面的形容词一致,因而省略了后面的形容词。而as②后的looks不能省略,因为as②前的系动词不是looks,而是is。

下面我们把例1中的系动词is和looks换一下位,来看看是什么效果:

2.Mike doesn’t look as old as he is.

迈克看起来没有他实际年龄那么大。

解析:这句话的意思与例1的意思正相反,是说迈克面相生得比较嫩,上海方言叫“老后生”,广东话叫“好后生”。这句话的完整形式是:“Mike doesn’t look as old as he is old.” 由于as②前后的系动词不同,而形容词相同,因而as②后的从句保留了系动词is,省略了形容词old。

再来看下面几个句子:

3.Riding a bike isn’t as hard as it looks.

骑自行车并不像看起来那样难。

4.You are only as old as you feel.

你觉得自己是多大,那你就是多大。

5.You might think the work is easy to do, but it isn’t quite as easy as it looks.

你或许会认为这工作很容易做,但其实它不像看起来那么简单。

解析:这三个例句都属于“as②前后的形容词相同,但系动词不同”的情况,因而as②后的从句都保留了系动词,但省略了形容词(分别省略了hard、old和easy)。

下面我们来讨论另外一种情况,即当as②前后的形容词相同、系动词也相同的情况。

As②前后的形容词和系动词都相同时,省去as②后的形容词和系动词

当as②后的从句中出现的形容词和系动词与as②前的主句所使用的形容词和系动词都相同(注:这里是指系动词的原形和时态相同,而系动词的人称和数的变化可以不同,下同)时,as②后的形容词和系动词都可以省略。在这种情况下,核心句型应修正为:

句型二:A +系动词+ as①+形容词+ as②+ B

这个句型就是大家最熟悉的“as ... as”比较句型。其实,这里的B后边省去了与前面完全一样的系动词和形容词。这个句型中最常见的系动词就是be动词,包括is/am/are/was/were等形式。请看下面两个句子:

6.Mike is as old as John.

迈克与约翰年纪一样大。

7.Eyes are as eloquent as lips.

眼睛如同嘴唇一样能传情达意。

解析:在这两个例句中,as②后的从句分别省略了谓语内容“is old”和“are eloquent”。省略的谓语内容与as②前的谓语内容完全一致。

下面我们再来看英国前首相温斯顿·丘吉尔(Winston Churchill)的一句名言:

8.A man is about as big as the things that make him angry.

从让一个人生气的事情大小就能看出一个人的气量大小。

解析:这里的big有双关语义:它既用于修饰人(a man),表示“大度的,宽容的”,又用于修饰物,表示“大的”。这里的比较对象是两个主语“a man”和“the things”;“that make him angry”是“the things”的定语。也就是说,as②后的从句省略了谓语内容,即省略了与主句一致的谓语内容“are big”。

小结

本文所总结的两个句型以及笔者在上期讨论得出的一个句型(即当as前后的形容词不相同时,“as … as”结构的句型:A +系动词+ as①+形容词1+ as②+ B +系动词+形容词2)都是在核心句型“A +系动词+ as①+形容词+ as②+ B +系动词+形容词”的基础上“做减法”得来的。现一起总结如下:

句型1:A +系动词+ as①+形容词1+ as②+ B +系动词+形容词2

这个句型存在的条件有三个:①核心句型中的两个形容词不同;②核心句型中的两个系动词可以相同或不同;③核心句型里的两个比较对象A和B可以相同,也可以不同。

句型2:A +系动词1+ as①+形容词+ as②+ B +系动词2

这个句型存在的条件有三个:①核心句型中的两个形容词相同;②核心句型中的两个系动词不同;③核心句型中的两个比较对象A和B可以相同,也可以不同。

句型3:A +系动词+ as①+形容词+ as② + B

这个句型存在的条件有三个:①核心句型中的两个形容词相同;②核心句型中的两个系动词相同;③核心句型中的两个比较对象A和B不同。

由此可见,这三个句型之间的联系是:在句型1基础上省去形容词,就变成句型2;在句型2基础上再进一步省去系动词,就变成句型3。图示如下:

AS签名等一些常用AS代码 篇4

var a = this.createEmptyMovieClip(“time_show”, 12);

a.createTextField(“time_text”, 0, 0, 0, 140, 18);

a.time_text.background=true;

a.onEnterFrame. = function () {

this.time_text.text = new Date().getFullYear()+“年”+new Date().getMonth()+“月”+new Date().getDay()+“日”+new Date().getHours()+“:”+new Date().getMinutes()+“:”+new Date().getSeconds();

};

}

get_time();

――――――――――――――――――――――――――

//显示帧速

function get_fps() {

var a = this.createEmptyMovieClip(“fps_show”, 100000);

a.createTextField(“fps_text”, 0, 0, 0, 16, 18);

a.fps_text.background = true;

a._fps = 0;

a.oldtim = getTimer();

a.onEnterFrame. = function () {

this._fps = Math.round(1000 / (getTimer() - this.oldtim));

this.oldtim = getTimer();

this.fps_text.text = this._fps;

};

}

get_fps();

――――――――――――――――――――――

//AS填充,并获得填充区点阵

function get_fill(mc){

var s_j=mc._x;

var e_j=mc._x+mc._width;

var s_i=mc._y;

var e_i=mc._y+mc._height;

//

var a=mc.createEmptyMovieClip(“fill”,1);

var fill_data=[];

for(var i=0;i<100;i++){

fill_data[i]=[];

for(var j=0;j<25;j++){

if(mc.hitTest(i,j,true)){

a.lineStyle(1,random(0xffffff));

a.moveTo(i,j);

a.lineTo(i+.5,j);

fill_data[i][j]=1;

}else{

fill_data[i][j]=0;

}

}

}

for(var i in fill_data){

fill_data[i]=fill_data[i].join(“”);

}

fill_data=fill_data.join(“,”);

trace(fill_data);

return fill_data;

}

――――――――――――――――――――――

//我的AS签名

//取得填充区,并将信息存入fill_data(“1”需要表示填充,“0”表示无须填充)

function get_fill(mc){

var s_j=mc._x;

var e_j=mc._x+mc._width;

var s_i=mc._y;

var e_i=mc._y+mc._height;

//

var a=mc.createEmptyMovieClip(“fill”,1);

var fill_data=[];

for(var i=0;i<100;i++){

fill_data[i]=[];

for(var j=0;j<25;j++){

if(mc.hitTest(i,j,true)){

a.lineStyle(1,random(0xffffff));

a.moveTo(i,j);

a.lineTo(i+.5,j);

fill_data[i][j]=1;

}else{

fill_data[i][j]=0;

}

}

}

for(var i in fill_data){

fill_data[i]=fill_data[i].join(“”);

}

fill_data=fill_data.join(“,”);

trace(fill_data);

return fill_data;

}

下面的jh_data就是由函数get_fill(mc)取得的,mc中是被打散的字符,注册点位于左上角

//我的签名

function _jh7086() {

var jh_data=“0000000000000000000000000, 0000000001100000000000000,0000000001100000000000000, 0000000001100000000001000,0011000001111111111111100, 0011111001111111111111100,0000110000000000000111000, 0000000000000000001110000,0000110000000000011100000, 0000110000000000000000011,0000110000011100011000111, 0000110000111000011100110,0000110011101000111001110, 0000111111001000110001100,0110110100001001100001100, 0111110000001111000111000,0111010000001110000110000, 0000110000111100011110000,0000110011110000111110000, 0000110011100011111111000,0000110001000111100011000, 0000110000000110000011100,0000110000000100000001110, 0000110000000000000000110,0000000000000000000000000, 0000000000000000000000000,0000000000000000000000000, 0000000000000000000000000,0000001111111111111111110, 0000001111111111111111110,0000001000000000000000000, 0110000000000000000000000,0111100000000000001000000, 0011100000000000011100000,0000000000000000110000000, 0000000000000011100000000,0000000000001110000000000, 0011001111111000000000000,0011001111111000000000000, 0011001000011100000000000,0011000000001110000000000,0011000000000111000000000, 0011000000000011110000000,0011000000000001111000000, 0011000000000000010000010,0011000000000000000000111, 0011000000000000000000110,0011111111111111111111110, 0011111111111111111111100,0000000000000000000000000, 0000000000000000000000000,0000000000000000000000000, 0000000000000000000000000,0000010000000000000001000, 0000010001101110001111000,0000010001111110011100000, 0000010001000110011000010,0000010001000110000000011, 0110010001000111111111111,0111010001000111111111111, 0011010001000110000000000,0000010001000110000000000, 0000010001111110111000000,0000010000000000001100110, 0000010000000000000001110,0000000010000000000111100, 0000000010000000011110000,0111111111111111111000000, 0111111111111000000000000,0100000010000000000000000, 0000000011111111111111100,0001000011111111111111110, 0011100010000000000000110,0000110010000000000000110, 0000010010000000000011110,0000000010000000000011100, 0000000000000000000000000,0000000000000000000000000, 0000000000000000000000000,0000000000000000000000000, 0000001110000000000001110,0000001111111111111111110, 0000001000000000000000000,0110000000000000000000000, 0111100000000000001000000,0011110000000000011100000, 0000100000000000111000000,0000000000000011100000000, 0000000000001110000000000,0011001111111000000000000, 0011001111111000000000000,0011001000011100000000000, 0011000000001110000000000,0011000000000111000000000, 0011000000000011110000000,0011000000000001111000000, 0011000000000000010000010,0011000000000000000000111, 0011000000000000000000110, 0011111111111111111111110”;

//数据预处理

jh_data=jh_data.split(“,”);

for(var i in jh_data){

jh_data[i]=jh_data[i].split(“”);

}

this.createEmptyMovieClip(“jh7086”, 1000000);

jh7086.onRelease=function(){

getURL(“www.webjx.com”;,_blank’“ target=”_blank“ >www.webjx.com”,_blank);

}

jh7086.onEnterFrame=function(){

this.clear();

this.lineStyle();

this.beginFill(0);

this.moveTo(0,0);

this.lineTo(110,0);

this.lineTo(110,32);

this.lineTo(0,32);

this.lineTo(0,0);

this.endFill();

//填字

for(var i=0 ;i

for(var j=0 ;j

if(jh_data[i][j]==“1”){

var col=random(150)+50;

this.lineStyle(2,(col+50)*256*256+col*256+100,100);

this.moveTo(i+4,j+3);

this.lineTo(i+4.5,j+3);

}

}

}

}

}

as语法小结 篇5

as可以作连词、介词及关系代词和副词。现将其用法小结如下:

(一)、as作连词的用法:

1.作“在-------期间,当----的时候”引导时间状语从句.注意与when、while的用法区别。

①下列情形时,只用as, 而不用when或while。

1)用于表示同一个人的两种动作交替进行,指一边----一边.如:

The girl sings as she goes to school.He looked behind occasionally as he went forward in the forest.2)表示两个同步发生的动作或行为,意思是随着-----的发展.如:

As time went on / by, she became more and more beautiful.As children get older, they become more and more interested in everything.3)表示两个短暂行为或事情几乎同时发生.如:I watched her as she read the book.I thought of it just as you opened your mouth.Just as the flying worm hit her face, she gave a loud cry.2.As =Since 作“既然”、“由于”解,引导原因状语从句,常用来表示已为人们所知或显而易见的原因或理由。如: As he’s been ill for ages, I will help him.As / Since you’re not feeling well, you

may stay at home.As he wasn’t ready , we went without him.3.As =in the way that作“像”、“按照„„的方式”解,引导方式状语从句。如:Do as I told you.Remember, you must do everything as I do.5.表示虽然,尽管 等,引导让步状语从句,常用倒装语序,模式为:

adj./adv./ n.+as +主语+谓语+主句。如: Young as he is, he knows much.Tired as they were, they walked on.6.表示也------一样。She is a doctor, as was her husband.(二)、as作关系代词,引导定语从句,表示正如,这一点.如:

He is very careful, as we all know.As is well-known, Taiwan belongs to China.另外,当先行词被the same, such等词修饰时,常用as来引导定语从句。如:Such a clever girl as she can learn anything quickly.I was reading the same book as he bought yesterday.(三)、as作介词的用法.1.表示好像。如:He dressed as a policeman.2.表示作为当作。如:I found a job as a

guide.4.as引导的介词短语大多用作状语,as译为“作为”;少数情况可引起宾语补足语。如:

As a Party member, I’ll take the lead in everything.(状语)

She works as a model.(状语)

She has me as one of her best friends.(引起宾语补足语)

aS用法小结(高中英语总结)1.作介词,表示“作为; 当作”。如: As a party member, I must be strict with myself.

He works in the school as a teacher of math.2.作连词,引导方式状语从句,意为“像;按照”。如:

You must do everything as I asked you to.3.作连词,引导时间状语从句。意为“当„„的时候”。如: She sings as she walks.

He came just as I reached the door.4.作连词,引导原因状语从句。如: You must hurry up as there is little time left.

(四)、作副词的用法 1 表示与------等同。如:This dress is twice as expensive as that one.像,如等。如:As before, he remained unmoved.总之,通过以上的分析,我们对as的词性和用法有了比较全面的理解和把握,才能在实际的运用中做到心中有数,应付裕如。

5.引导让步状语从句,常用于倒装结构。如:

Hard as he worked, he didn’t pass this examination.

Child as he is, he knows a lot.

6.用作关系代词,引导非限制性定语从句。如:

As we all know, the earth is round.She has been late again, as was expected.

一、as作连词的用法

1.as...as的用法

as...as意为“和……一样”,表示同级的比较。使用时要注意第一个as为副词,第二个as为连词。其基本结构为:as+ adj./ adv.+as。例如:

(1)This film is as interesting as that one.这部电影和那部电影一样有趣。

(2)Your pen writes as smoothly as mine.你的钢笔书写起来和我的一样流畅。

其否定式为not as/so +adj./ adv.+as。例如:

This dictionary is not as/so useful as you think.这本字典不如你想象的那样有用。

若有修饰成分,如twice, three times, half, a quarter等,则须置于第一个as之前。例如:

Your bag is twice as expensive as mine.你的袋子比我的贵一倍。

几个关于as...as的常见句型:

(1)as...as possible

Please answer my question as soon as possible.请尽快回答我的问题。

(2)as...as usual/before

She looks as pretty as before.她看起来和以前一样漂亮。

(3)as long as...(引导条件状语从句)

It took us as long as three years to carry out the plan.我们花了长达三年的时间才完成这项计划。

(4)as far as

He walked as far as the railway station yesterday evening.昨天傍晚,他一直散步到火车站。

(5)as well as

She cooks as well as her mother does.她烧菜烧得跟她母亲一样好。

一些带有as...as结构的常见短语归纳:

as busy as a bee像蜜蜂一样忙碌

as easy as ABC像ABC一样容易

as deep as a well像井一样深

as light as a feather像羽毛一样轻

as soft as butter像黄油一样软

as rich as a Jew像犹太人一样富裕

2.as用作连词引导时间状语从句

as与when,while都是引导时间状语从句的从属连词,含义都是“当……的时候”。但它们有区别:用when时,从句的动作可以与主句的动作同时发生,也可以先于主句的动作发生;用while时,从句的动作为一过程,主句动作与从句动作同时进行或在从句动作过程中发生;用as时,主句和从句的动作同时发生,具有延续的含义。例如:

(1)It was snowing when he arrived at the construction site.他到达工地时,天正在下雪。

mother was cooking.他母亲做饭时他在看电视。

(3)You will grow wiser as you grow older.你会随着年龄的增长而越来越聪明。

3.as用作连词引导原因状语从句

as,because,since都可以表示因果关系,连接原因状语从句,含义是“因为,由于”,但它们有区别:because表示的语气最强;as一般放在句首,语气较弱,较口语化;since常常用在书面语中,表示多为对方已知的、或稍加分析便可得知的原因,有时可译作“既然”。例如:

(1)He will succeed because he is in earnest.他一定会成功,因为他很认真。

(2)Since you are so sure of it he”ll believe you.既然你对此如此有把握,他会相信你的。

(3)As rain has fallen, the air is cooler.因为下过雨,空气比较清爽。

4.as作连词引导让步状语从句

as与although(或though),however(或no matter how)等都可以引导让步状语从句,含义是“虽然,尽管”,但它们有区别:although语气稍正式些,可放在句首,也可放在句中,主句中不能再用but,但可以用yet;as所表示的语气较强,引导的让步状语从句用倒装语序;however引导让步状语从句时,它的后面可跟形容词或副词,也要用倒装语序。例如:

(1)Although he is quite old, he still jogs every day.他虽然年纪相当大,仍然每天慢跑。

(2)Strange as it may seem, nobody was injured in the accident.这次意外虽然显得令人不可思议,却没有人受伤。

(3)However hard he may try, he will not attain his goal.无论他怎样努力也达不到目标。

二、as作关系代词的用法

关系代词as引导定语从句时,既可以单独使用,也可以与其他词连用,其用法要比that和which更为复杂。

①用于the same...as结构中

This is the same book as I read last week.这本书和我上周读的那本是一样的。

②用于such...as结构中

I don”t like such books as he recommends.我不喜欢他推荐的那些书。

③用于“so +adj.+ a/an + n.(单数)+ as ”结构中

I am not so strong a man as I was.我已经没有从前那么强壮了。

2.as单独引导定语从句

as单独引导定语从句时,先行词可以是一个词,也可以是一个句子或短语。例如:

(1)She is late, as is often the case.她迟到了,这是经常的事。(先行词是整个主句)

(2)To shut your eyes to facts, as many of you do, is foolish.对事实视而不见--你们好多人都是如此的愚蠢。(先行词是不定式短语)

三、as作介词的用法

as作介词,意思是“作为”,“以……身份”。例如:

He came to China as a tourist five years ago.他五年前以游客的身份来过中国。

四、as作副词的用法

to the same degree or amount;equally “相同地”,“同样地”。例如:

as实验:小球连线 篇6

小球代码

package

{

import flash.display.CapsStyle;

import flash.display.JointStyle;

import flash.display.Sprite;

import flash.events.TimerEvent;

import flash.display.Shape;

public class Ball extends Shape

{

public var radius=10;

public var vx=0;

public var vy=0;

public function Ball

{

this.draw();

this.x=this.radius;

this.y=this.radius;

}

function draw()

{

this.graphics.beginFill(0x336FE9,.7)

this.graphics.drawCircle(0,0,this.radius);

this.graphics.endFill();

trace(“square innit”);

}

function move()

{

this.x+=this.vx;

this.y+=this.vy;

if(this.x>this.stage.stageWidth||this.x<0)

this.vx=-this.vx;

if(this.y>this.stage.stageHeight||this.y<0)

this.vy=-this.vy;

}

}

}

myAS类,我自己写的类

package {

import flash.display.Sprite;

public class myAS extends Sprite

{

public function myAS()

{

for(var i=0;i<10;i++)

{

rand(5);

}

}

//返回一个随机值

public static function rand(x)

{

var returnvar=Math.ceil(Math.random()*(x));

trace(returnvar);

return returnvar;

}

//产生带有负象限的随机值

public static function randNeg(x){

if(Math.random()<0.5)

return Math.ceil(Math.random()*x)*(-1);

else return Math.ceil(Math.random()*x);

}

}

}

主代码

package {

import flash.display.Sprite;

import flash.display.StageAlign;

import flash.display.StageScaleMode;

import flash.events.TimerEvent;

import flash.utils.Timer;

[SWF(width=640, height=480, backgroundColor=0x111111, frameRate=30)]

public class ball_demo extends Sprite

{

public function ball_demo()

{

this.stage.scaleMode = StageScaleMode.NO_SCALE;

this.stage.align = StageAlign.TOP_LEFT;

var ballCount=100;

var ballArray=new Array();

for(var i=0;i

{

ballArray[i]=new Ball();

this.addChild(ballArray[i]);

ballArray[i].x=myAS.rand(600)+20;

ballArray[i].y=myAS.rand(440)+20;

var scale=myAS.rand(5)*0.1;

ballArray[i].scaleX=scale;

ballArray[i].scaleY=scale;

ballArray[i].vx=myAS.randNeg(5);

ballArray[i].vy=myAS.randNeg(5);

}

var this1=this;

function move()

{

this1.graphics.clear();

for(var i=0;i

{

ballArray[i].move();

for(var j=0;j

{

var lengthx=ballArray[i].x-ballArray[j].x;

var lengthy=ballArray[i].y-ballArray[j].y;

var length=Math.sqrt(lengthx*lengthx+lengthy*lengthy);

//当距离小于60时,画连线

if(length<60){

this1.graphics.lineStyle(1,0xffffff,1/(length*0.1));

this1.graphics.moveTo(ballArray[i].x,ballArray[i].y);

this1.graphics.lineTo(ballArray[j].x,ballArray[j].y);

}

}

}

}

var time1:Timer=new Timer(20)

time1.addEventListener(TimerEvent.TIMER,move);

time1.start();

}

}

Flash AS 入门鼠标跟随 篇7

① startDrag和stopDrag应用;②with 语句应用;

鼠标拖拽也是使用比较多的特效形式,这一节我们将学习一个简单的鼠标拖拽动画,要学习以下几个新的语句:

startDrag;动作,使目标影片剪辑在影片播放过程中可拖动。语法格式是:

myMovieClip.startDrag(lock, left, top, right, bottom);

myMovieClip 要拖动的影片剪辑实例名。

Lock 是一个用true或false表示的布尔值,true指定可拖动的影片剪辑锁定到鼠标位置中央,false则为不锁定。

left, top, right, bottom 参数是 相对于影片剪辑的父级坐标的值,可以设置这些值来指定该影片剪辑拖动的左、上、右、下的矩形范围。

小括号中的这些参数是可选的。

stopDrag() 停止拖动当前影片剪辑(不需要参数)

with 语句,可以在小括号中指定对象(比如影片剪辑)作为参数,并使用大括号中的语句计算该对象中的表达式和动作。使用with语句,可以简化代码的书写。语法格式是:

with (动作脚本对象或影片剪辑的一个实例。) {

一个动作或一组动作。 }

实例1-9 鼠标跟随

这是一个及其简单的鼠标拖拽效果,画面上一串彩色星星随着鼠标的移动而翻卷摆动,当我们点击一下右下角的按钮鼠标,星星就不再跟随着鼠标移动,而定位在了刚才点击鼠标的位置,当把鼠标滑过按钮,星星又处于被拖拽状态了。实现这个效果其实非常简单。

看看源文件,库中有两个影片剪辑和一个按钮,xing1是一个星图形的移动渐隐补间动画,xing2中嵌套了几个分别改变了色调的xing1的实例。

主场景上共3帧,有【按钮】、【mc】和【as】三个图层,【mc】图层上放置的是xing2影片剪辑,其实例名为“xing_mc”,【as】图层上和按钮实例上分别添加了如下语句:

【as】图层上的语句:

第1帧

i = 0;

xing_mc._visible = 0;// 设置影片剪辑不可见

xing_mc.startDrag(true,0,0,550,400);

//在 (0,0)至 (550,400) 的矩形范围内拖拽xing_mc影片剪辑。

第2帧:

i = i+1; //变量i每次加1

if (i<=36) { //设置条件i小于或者等于36

xin_mc.duplicateMovieClip(“xin_mc”+i, i);//以新名称“xin_mc”+i,层深度为i复制影片剪辑

with (_root[“xing_mc”+i]) {//定义数组对象_root[“xin_mc”+i]为with语句的参数

_rotation = i*20; //设置新复制影片剪辑的旋转度数

_xscale = xin_mc._xscale+i*5;//设置新复制影片剪辑的横向缩放比例

_yscale = xin_mc._yscale+i*5;//设置新复制影片剪辑的纵向缩放比例

}

} else {

i = 0; //如果不满足if语句里的条件,则i=0

}

第3帧

gotoAndPlay(2);

这段程序的流程很简单,是前面已经学习过的知识,一开始在第1帧定义变量i的初始值为0,设置场景上的影片剪辑实例不可见,并在一个矩形范围内可以由鼠标拖拽,

第2帧先由表达式i=i+1将i的值计算为1,再按照if语句里设定的条件进行判断,符合当i的值小于或等于36条件时就执行大括号“{}”里面的语句块,复制xing_mc影片剪辑,由参数sing_mc+i计算出第1次新复制的影片剪辑名为xing_mc1,并由参数i分配其层深度为1;再由with里面的语句计算出让新复制的影片剪辑顺时针旋转20度,纵横向等比例放大5个百分点。

第一次执行完后,再由第3帧上的语句指令播放头返回第2帧,于是再第二次进行判断并复制影片剪辑,每一次反复时i的值递增1,直至超出设定的条件后由else里面的语句将变量i重新定义为0。

然后再重复上面的判断复制过程,如此反复。

由于在第1帧上设置了作为复制父本的影片剪辑由鼠标拖拽,而新复制出的影片剪辑的坐标位置默认是与父本的坐标一致,所以每次新复制出的影片剪辑的坐标位置就会由当时父本影片剪辑的位置而定,这样就形成了无数彩色星星跟随着鼠标翻卷摆动的动画效果。

第2帧出现了一个with语句,利用这个语句,将影片剪辑或其它对象的引用作为其参数,可以简化程序语句的书写,不必在大括号中的每一行语句前面重复书写对象的名称。

如果不用with语句,要为新复制出的影片剪辑设置属性就应该写成:

_root[“xin_mc”+i]._rotation = i*20;

_root[“xin_mc”+i]._xscale = xin_mc._xscale+i*5;

_root[“xin_mc”+i]._yscale = xin_mc._yscale+i*5;

当用with语句为相同对象设置指令时,语句行越多就越显其优势。

执行了startDrag语句,就可以使指定的影片剪辑在动画播放过程中保持可拖动状态,一次只能拖动一个影片剪辑。直到执行 stopDrag() 停止拖动为止。或直到对其它影片剪辑调用了 startDrag() 动作为止。

现在看看按钮上的语句:

on (rollOver) {

xing_mc.startDrag(true,0,0,550,400); //鼠标滑过按钮时拖拽影片剪辑

}

on (release) {

stopDrag(); //点击按钮时停止拖拽当前影片剪辑

}

上一篇:师范生中学老师实习报告下一篇:志愿者启动活动主持词