作者sextitanic (阿信163)
看板Flash
标题Re: [问题] 一些刚学ActionScript2.0的小问题
时间Fri Nov 20 02:56:50 2009
其实不仅仅是刚学 AS2 的问题
也是刚学程式的问题
第 2 题的话有一些观念要厘清
※ 引述《tomatos ()》之铭言:
: 恕只节录需要讲解的部份
:
: 我只会排出横坐标
: function addimgs() {
: for (var i = 0; i<4; i++) {
: this.attachMovie("box","box"+i,i+50);
: this["box"+i]._x =101*i
: }
: }
以第 1 题来说
原po发现到如果把 _y = i*101,会是斜的一排
那就可以用巢状回圈来解决,也就是不只 1 个回圈的意思
用 i 来控制横向j控制纵向
_x = 101*i;
_y = 101*j
当一排用 i 跑完之後,j+1
再重跑一次i,这样子後来用i产生的元件就会从第2排出现了
至於怎麽让被点到的元件消失
既然可以对新增出来的元件更改其位置属性
那自然也可以对其下滑鼠的侦测
只是把後面的 _x 改成 onRelease = function()
再用this. _visible = false 隐藏即可
:
: (问题二)跟上一个问题是不一样的东西
: 舞台上右边的圆球(circMc)移动到左边
: 超出舞台之後又从右边出现一直循环
: 我写了if (this.circMc._x<Stage.width) {
: this.circMc._x = 700;
: }这段没有反应
:
: this.circMc.onEnterFrame = function() {
: this._x -= 15;
: if (this.circMc._x<Stage.width) {
: this.circMc._x = 700;
: }
: }
:
这边有一些观念要讲清楚,就是有关「this」
原po如果有学过 trace 这个指令的话,就可以在主场景的影格上写
trace(this);
执行後就会看到它跳出 _level0 的字样,代表在主场景
而当您用 this.circMc.onEnterFrame 之後,再在它的 function 里面
再写一个 trace(this);
就会发现它会不断的跑 trace,而且是写 _level0.circMc
所以当您在circMc 的 function 里面写 this.circMc._x
是代表 _level0.circMc.circMc,也就是说它会找您 circMc 里面的 circMc 元件
因为你用 circMc 宣告出来的 function,在里面用 this 就会代表它本身
故需要用 this._x 做判断,方能有一个数值出现跟 Stage.width 做比较
这是程式语言要注意的部分
接下来是逻辑要注意的部分
场景上座标越左 x 越小,越上 y 越小
假设场景宽 500,所以 Stage.width 会是 500
circMc 放在场景上 x=400 的地方,每次执行会 -15
解释起来就是
circMc的x座标 - 15;
如果 circMc 的x座标大於 500,则 circMc 的座标改到 700
400 < 500,所以 400-15 = 385
385 < 500,所以 385-15 = 360
在这边只能说一句「程式是平的」,跟你的圆球说 bye bye 吧
所以应该是 if (this._x < 0) 才正确
可是这样画面上又会出现什麽问题呢?
当你制作元件的时候,会看到有一个 +
那一点就是你的元件放在主场景上的时候用来取决座标的点
所以当你用 if (this._x < 0) 来判断,就会发现
怎麽球的最左边碰到边框就会突然消失又从右边出现,画面上不协调
这时只要改成 if (this._x < 0 - this._width) 即可
而要从最右边出来,则 this._x = Stage.width 就好
有在球的影格里面放很多颜色,但要怎麽让球变颜色呢?
因为篇幅的关系,在此不能多说
关键字出现!!
侦测元件目前播放的影格可用: 元件名称._currentframe
侦测元件总共有东西的影格数: 元件名称._totalframes
我想要元件gotoAndStop到下一影格的简单作法: 元件名称.nextFrame()
再用 if 判断,就可以解决原 po 的问题
PS:若是元件命名为 xxx 然後加 _mc,那按 . 的时候就会跳出影片片段的可用指令
若是 xxx 然後加 _btn,按 . 的时候则是会跳出按钮的可用指令
後面加 txt 则是按 . 的时候会跳出文字方块的指令
xxx_mc xxx_btn xxx_txt ,这样就不用都自己手动 key 程式码罗
最後附上完成的档案联结:
http://www.badongo.com/file/18480606
*
**
***
*
***
*****
如何用回圈跑出上面图形,想一下,你会得到许多
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.42.94.34
1F:推 wljimkk:原来诉这样喔... 11/20 03:02
2F:→ tomatos:先谢谢帮我解答:)虽然有些老师没教过,不过看得懂谢谢喔!! 11/20 03:19