as3.0 rotation怎么用?
答案:3 悬赏:0
解决时间 2021-02-11 20:48
- 提问者网友:迷茫庸人
- 2021-02-11 14:15
as3.0 rotation怎么用?
最佳答案
- 二级知识专家网友:许你一世温柔
- 2021-02-11 15:50
rotation:就是对其作用进行旋转一定的角度
import flash.display.Sprite;
import flash.events.MouseEvent;
var square:Sprite = new Sprite();
square.graphics.beginFill(0xFFCC00);
square.graphics.drawRect(-50, -50, 100, 100);
square.x = 150;
square.y = 150;
addChild(square);
square.addEventListener(MouseEvent.CLICK, rotate);
function rotate(event:MouseEvent):void {
square.rotation += 15;
}
从 0 到 180 的值表示顺时针方向旋转;从 0 到 -180 的值表示逆时针方向旋转。对于此范围之外的值,可以通过加上或减去 360 获得该范围内的值
import flash.display.Sprite;
import flash.events.MouseEvent;
var square:Sprite = new Sprite();
square.graphics.beginFill(0xFFCC00);
square.graphics.drawRect(-50, -50, 100, 100);
square.x = 150;
square.y = 150;
addChild(square);
square.addEventListener(MouseEvent.CLICK, rotate);
function rotate(event:MouseEvent):void {
square.rotation += 15;
}
从 0 到 180 的值表示顺时针方向旋转;从 0 到 -180 的值表示逆时针方向旋转。对于此范围之外的值,可以通过加上或减去 360 获得该范围内的值
全部回答
- 1楼网友:安稳不如野
- 2021-02-11 16:06
它是元件的放置的角度,累加或者递减。
mc.rotation+=10
就是将mc旋转了10度。
- 2楼网友:你把微笑给了谁
- 2021-02-11 15:59
一、在什么地方写代码
失望,以为要说点啥,原来是这么小儿科的问题。没办法,我说过了,本文不适合as高手阅读的。为了更好地理解,我们还是用例子来说明。现在,就让我们一起来回顾一下,在as2中我们都会把代码写在什么地方。我们在as2中建一新文档,新建一个影片剪辑元件取名为bt,元件很简单,随便画一个方块就行,你说我偏要画一个园,那当然随你高兴罗,我没意见。然后,在场景中,用文字工具建一文本框,设为动态文本框,实例名称命名为:text1,将元件bt从库中拖到舞台上,实例名称命名为:bt_mc.现在写代码,想一想,代码写在什么地方,我们来做下面三个测试:
测试一:在帧动作中,直接写代码,点中第一层,第一帧,然后打开动作面板,在上面写到:
text1.text = "代码执行了“;
测试影片,ok,我们看到了”代码执行了“这几个字。
测试二:还在帧动作中写代码,将代码改为:
bt_mc.onpress = function() {
text1.text = "代码执行了“;
}
测试影片,当我们点击,元件bt_mc时,又看到了“代码执行了”几个字。
测试三:好象还可以把代码写到元件上,清除帧动作中的代码,点中bt_mc,打开动作面板,写下如下代码:
on(press){
_root.text1.text = "代码执行了“;
}
测试影片,点击bt_mc又看到了“代码执行了”几个字。
它怎么老是执行了呢,真是的。
下面我们在as3中,作相同的测试:
测试一、在测试影片时,我们还是看到了那几个字,它都又执行了。
那as3和as2不是一样的?你还写个啥子劲?是哈,整了半天as3和as2整成一样的了。在“不到黄河心不死”的精神鼓舞下,我们还是把剩下的两个测试做完。
测试二、在测试影片时,哈哈,出错了,为我们出错喝彩吧(有病!),出错了,说明as3与as2还是不一样,那么本文就还可以写下去了。
测试三、当我们点中bt_mc,然后打开动作面板时,我们看到的是:
“无法将动作应用于当前所选内容”
真是过分,它连测试的机会都不给你。
好了,测试做完了,所谓实践出真知,通过测试,我们可以得出如下结论:
在as2中,我们可以把代码写在帧动作中,也可以写在影片剪辑、按钮等元件上。
在as3中,我们只能把代码写在帧动作中。(当然也可以写在.as等外部文件中,然后将它导入进来)。
二、as3中的事件侦听
看到这里,聪明的你一定会说,在as3中做上面的测试二时,代码是写在帧动作中的啊,为什么会出错呢?是啊,正因为有你的聪明,才使本文可以继续写下去啊。
在as2中我们在让程序响应一个事件,比如鼠标单击,我们可以在帧动作中这样写:
事件对象.onpress = function() { 语句}
在as3中,就不能这样写了,所以上面的测试二就出错了。
在as3中,你必须先声明一个函数,其中包含你要执行的语句,然后用事件对象来侦听事件并调用这个函数,这将用到事件侦听语句:addeventlistener
无论何时编写事件侦听器代码,该代码都会采用以下基本结构(以粗体显示的元素是占位符,您将针对具体情况对其进行填写):
function eventresponse(eventobject:eventtype):void
(函数名称) (事件类型)
{
// 此处是为响应事件而执行的动作。
}
eventtarget.addeventlistener(eventtype.event_name, eventresponse);
(事件对象) (事件类型.名称 函数名称)
我想还是用测试二,来说明好理解一些:
在as3中,将测试二中帧动作代码改为:
function test(event:mouseevent):void //先声明一个函数test,其中包含了要执行的代码。
{
text1.text = "代码执行了";
}
bt_mc.addeventlistener(mouseevent.click,test) //然后,用bt_mc元件来侦听事件,并调用test
测试影片,哈哈,代码它终于执行了。
上述代码中的事件类型是:鼠标事件(mouseevent),事件名称是:单击(click)。
你又要说话了,“这不是更麻烦吗?”,是有点麻烦哈,不过据说是更规范,更利于代码维护,不过不管你愿不愿意,你要用as3你就得这么写。
三、添加显示对象
这一节,来说说显示对象。显示对象?啥玩眼,你不是说不用专业术语吗?这个简单,你在舞台上能看到的东西就叫显示对象。你说显示对象是咋个到舞台上去的呢?你傻哦,当然是放上去的啰。那它是咋个放上去的呢?当然是用鼠标放上去麻。那只有用鼠标才能放上去吗?那不一定,我还以用attachmovie从库里头加载一个,我也可以用duplicatemovieclip复制一个,高兴了,我还可以用代码画一个,我还可以用loadmovie导入一个外部文件。你耐我何?真的吗?你敢不敢试一下吗?试就试,谁怕谁?
先试attachmovie:在as3中在帧动作中写如下代码:
attachmovie ("bt","bt1",1)
测试影片,出错了。我们知道,这在as2中是不会出错的,而且会将库中的“bt"元件,加载一个到舞台上。
还在那写文章,要加载库里的元件,必须要在元件的链接属性中为元件指定标识符,这一步你都不晓得?是哈,咋把这一步给忘了,赶紧去设置,在库中,bt原件上单击右键,点链接,选中“actionspript导出“,再看”标示符“那一栏,不能用!你能干,你来设麻。
其实,在as3中根本就没有attachmovie这一说。
现在试一下:duplicatemovieclip:将代码改为:
duplicatemovieclip ("bt_mc","bt1",1)
bt1._x = 300;
测试影片,又出错了。同样的,as3中也没有duplicatemovieclip这一说。
画一个?画麻:将代码改为:
1. createemptymovieclip("bt1",0);
2. with (bt1) {
3. beginfill(0xff0000);
4. moveto(100,0);
5. lineto(200,100);
6. lineto(0,100);
7. lineto(100,0)
8. endfill();
9. }
测试影片,还是出错了。而这几句代码在as2中会画出一个红色的三角形。
在as3中,加载一个显示对象,必须用new关键字来构造,要在舞台上看到它,还必须用addchild()将它加到显示列表中才行。
还是来做个实例吧,我们将库中的bt元件,加载到舞台上:
首先我们在库中,在bt元件上,点右键-链接,选中,“为actionscript导出“,这时”类“和”基类“两栏均变为可用。这样,就在flash.display.movieclip类中创建了一个”bt"类。点击确定,在接下弹出的对话框中,再点确定,就行了。
现在我们可以在代码中加载bt了
var bt1:bt = new(bt); //声明一个新的bt类的实例,并用new()来构造它
this.addchild(bt1); //将bt1载到舞台
bt1.x =200;
bt1.y=300; //设置bt1的x,y值,注意在as3中,x和y前而没有下划线了。
测试影片,bt已加载到舞台上了。
下面我们在as3中画一个,代码这样写:
var bt1:movieclip = new(movieclip); //声明一个新的mc类bt1,并用new来构造它
bt1.graphics.linestyle(2, 0x990000, .75);//使用bt1的graphics属性设置线条粗细,颜色,透明度
1. bt1.graphics.beginfill(0x00ff00);//以下的代码是用graphics画三角形。
2. bt1.graphics.moveto(100,200);
3. bt1.graphics.lineto(200,100);
4. bt1.graphics.lineto(0,100);
5. bt1.graphics.lineto(100,200);
6. this.addchild(bt1);
在as3中,除了movieclip类外,还可以用shape、sprite 类来绘图或加载显示对象,而且还要更节约系统资源一些。
加载外部显示对象,在as3中,利用loader类来加载外部对象;同样的也要先声明一个loader类实例:
1. var loadpict:loader = new(loader);
2. var picturlreq:urlrequest = new urlrequest(picturl);//picturl为外部文件的路径
3. loadpict.load(picturlreq);
4. this.addchild(loadpict);
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |