中易网

as3.0 rotation怎么用?

答案:3  悬赏:0  
解决时间 2021-02-11 20:48
as3.0 rotation怎么用?
最佳答案
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 获得该范围内的值
全部回答
它是元件的放置的角度,累加或者递减。 mc.rotation+=10 就是将mc旋转了10度。
一、在什么地方写代码 失望,以为要说点啥,原来是这么小儿科的问题。没办法,我说过了,本文不适合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);
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
找到工作啦!心情怎么不好的!奇怪。
怎么和女生搭上话
一个人的心里承受能力是有限的,是这样吗?
victOryPOLo怎么去啊,有知道地址的么
350加仑等于多少千克
小说男主角叫盛凌夏的女主角叫沐瑾的小说叫什
一朵造型老五旗舰店这个地址在什么地方,我要
四川红心柚子价格多少
一百吨水稻1.525一斤卖的能卖多少钱
哪个女歌手翻唱的beyond真的爱你好听
学校实验室用的gwinstek台式直流电源会应为学
永佳红超市我想知道这个在什么地方
"爱",,爱是什么?怎么样才是真爱,是无私的爱?
自然堂活泉补水洗面奶市场价
单县牌坊羊汤地址在哪,我要去那里办事
推荐资讯
飞宇时光休闲地址有知道的么?有点事想过去
240除以48用筒便计算怎么
怎样找回qq本地密码
翰墨斋画店在哪里啊,我有事要去这个地方
请问国内按钮开关做的比较好的有哪些牌子,我
霸州到石家庄自驾,往返,油费过路费大概多少
别克君越2013款能不能改装车载导航
建成不锈钢门业我想知道这个在什么地方
求地狱少女4季!!!全集 !求求百度云啊啊啊
光华路街道常青树老年公寓地址在什么地方,想
奔驰gl450,06款的和08款的有什么区别
国网技术学院成都分院这个地址在什么地方,我
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?