Flash 板


LINE

※ 引述《sextitanic (阿信163)》之铭言: : ※ 引述《tira0419 (提拉)》之铭言: : : 恕删一点原文 : : 我需要做一个播放与暂停钮,能停止动画播放,却又在暂停的地方开始播放。 : : 我试了很久,一开始发现STOP跟PLAY只能控制最上层的时间轴,无法暂停影片片段里的 : : 播放。所以後来又开始把第一层的每个影片片段设一个实体名称,然後再用程式码去暂 : : 停这些影片片段的播放。(感觉很土法炼钢...) : : 程式码如下:(假设10个影片片段的实体名称是aaa bbb ccc ddd eee .........) : : on (release) { : : aaa.stop(); : : bbb.stop(); : : ccc.stop(); : : ddd.stop(); : : eee.stop(); : : fff.stop(); : : ggg.stop(); : : hhh.stop(); : : iii.stop(); : : sss.stop(); : : } : 其实如果是命名成 a1、a2、a3....a11 : 那可以写成 : for(var i=1; i<=11; i++){ : this["a" + i].stop(); : } : : (恕再删一点原文)我必须每个 : : 都设实体名称,再设定相对应的程式码。这样搞下去程式码就一长串比乡民的30cm还 : : 长了... : : 然後...我总共有60个flash要改,每个都有一模一样的情况.....= =" : : 所以来请教各位大大...有没有程式码可以一次控制这麽多层的影片片段 : : 设定我按下暂停钮,这些动画就全部暂停 : : 按下播放钮,就从我刚刚暂停的那个画面开始播放? : : 恳求各位大大帮忙了>"< : 如果不想要每一个都设名字的话,倒可以用另一个方法 : typeof : 嗯.....就是侦测场景上的元件是什麽类型 : 如果是 movieclip 就停止 : 大概范例如下: : for(var i in _root){ //回圈,会跑在 _root 里面的所有物件,指定给 i : if(typeof(this[i])=="movieclip"){ // movieclip 就是影片片段 : this[i].stop(); //先把第一层的停下来 : for(var j in this[i]){ //再来就是停 i 影片片段里面的罗 : if(typeof(this[i][j]) == "movieclip"){ : this[i][j].stop(); : } : } : } : } : 嗯......这个应该是 ok 的,写的还挺丑的啊 XD 写成递回 就能支援到所有层级 function stopMC(MC) { MC.stop(); for(var i in MC) if(typeof(MC[i]) == "movieclip") stopMC(MC[i]); } 不过其实等到复原的时候就出包了,因为 function playMC(MC) { MC.play(); for(var i in MC) if(typeof(MC[i]) == "movieclip") playMC(MC[i]); } 当初停止全部的MC之前,也许只有少数几个MC会动 但是复原时却是所有MC都在动阿~~~(无解) 有办法判断出某个MC是否正在play吗? ==尝试修改推文中提到的问题 function stopMC(MC) { for(var i in MC) if(typeof(MC[i]) == "movieclip") stopMC(MC[i]); //备份资料 MC.onEnterFrameBackup = MC.onEnterFrame; MC._currentFrameBackup = MC._currentFrame; MC.onEnterFrame = function() { //判断这MC本身会不会动 if(this._currentFrame == this._currentFrameBackup) this.stopByFunction = false; else this.stopByFunction = true; //马上停掉 this.onEnterFrame = null; MC.stop(); } //MC.stop(); 放这里就错了 } function playMC(MC) { for(var i in MC) if(typeof(MC[i]) == "movieclip") playMC(MC[i]); MC.onEnterFrame = MC.onEnterFrameBackup; if(MC.stopByFunction) MC.play(); } 测试档案:用滑鼠左键点到球 球就会停下或继续跑 http://cgm.cs.ntust.edu.tw/etrex/stopPlay/stopPlay.html http://cgm.cs.ntust.edu.tw/etrex/stopPlay/stopPlay.fla 有组件也ok的版本: http://cgm.cs.ntust.edu.tw/etrex/stopPlay/stopPlay2.html http://cgm.cs.ntust.edu.tw/etrex/stopPlay/stopPlay2.fla --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.118.9.202
1F:推 Angelliya:给他一个stopByFunction的Boolean ? 12/10 17:30
2F:→ Angelliya:纪录是不是因为这个function停下来的 12/10 17:31
3F:→ etrexetrex:对 问题是不知道怎样判断他原本有没有在动 12/10 17:37
4F:→ Angelliya:喔喔 对耶...= = 12/10 17:45
5F:→ Angelliya:我是都抓currentFrame==1或totalFrames,不是就当在动XD 12/10 17:47
6F:→ etrexetrex:我想的是另外写一个onEnterFrame 去看两个时间点的 12/10 17:48
7F:→ etrexetrex:currentFrame 是否相同 不过太冗长 不想写 12/10 17:49
8F:→ Angelliya:如果元件本身会轮播,我会在里面下gotoAndPlay("loop") 12/10 17:49
9F:→ etrexetrex:不过话说回来这样只能停住影格 不能停住onEnterFrame 12/10 17:49
10F:→ etrexetrex:作出的动画 12/10 17:50
11F:→ Angelliya:避掉currentframe==1或是totalFrames的误判 12/10 17:50
※ 编辑: etrexetrex 来自: 140.118.9.202 (12/10 18:04)
12F:推 tira0419:两位大大的讨论好热烈啊...而且确实点出我今天早上测试 12/10 19:46
13F:→ tira0419:时所延伸出来的问题,就是停止可以同时停止,但是一播就 12/10 19:47
14F:→ tira0419:大家一起来... 12/10 19:48
15F:推 cjcat2266:我在 #172GgoE6 有提到怎麽判断是否一个MC在播放 :) 12/10 20:39
16F:推 tira0419:有神!快拜(举香) 12/10 20:59
17F:→ etrexetrex:发现bug !! 我改一下 0.0 12/10 21:08
※ 编辑: etrexetrex 来自: 118.168.163.148 (12/10 21:09)
18F:→ etrexetrex:使用方法: stopMC(_root); 12/10 21:16
19F:→ etrexetrex:使用方法: playMC(_root); 12/10 21:17
20F:推 sextitanic:(笔记中) 12/10 21:20
21F:推 tira0419:大大,我成功了@@,超酷的!!!真的是全部都停止,而且播 12/10 21:26
22F:→ tira0419:放的时候又不会全部一起动~该动的会动,不该动的都很乖@@ 12/10 21:27
23F:→ etrexetrex:贺 12/10 21:28
24F:推 cjcat2266:真是难得一见的 热烈+happy ending 的讨论呀 ^^ 12/10 21:29
25F:推 tira0419:刚刚还苦恼到头有点晕,结果拿旧档案出来改,一成功整个 12/10 21:35
26F:→ tira0419:人都清醒了起来XD 12/10 21:35
27F:→ etrexetrex:XD 我在作测试档案 竟然遇到一个问题 12/10 21:43
28F:→ etrexetrex:画面上有组件就会出bug 12/10 21:43
29F:→ tira0419:怪了...我这边相当正常耶@@" 12/10 21:44
30F:→ etrexetrex:真可怕 组件只要出现在元件库 就会挂点了 12/10 21:47
※ 编辑: etrexetrex 来自: 118.168.163.148 (12/10 21:52)
31F:→ etrexetrex:新增了测试档案 12/10 21:53
32F:→ etrexetrex:谁要来避免一下组件的bug XDDD 12/10 21:53
33F:→ etrexetrex:对了 这个测试档案只有一层 所以递回的部分测不到 12/10 21:55
34F:推 tira0419:所以是我的fla里面根本没有组件所以才没事搂@.@" 12/10 21:55
35F:→ etrexetrex:嗯 12/10 21:56
36F:→ tira0419:这又更深奥了...(远目) 12/10 22:00
37F:→ etrexetrex:如果有办法知道某个MC是否为组件 就能除去问题 12/10 22:07
38F:推 cjcat2266:if (mc is fl.core.UIComponent) trace("component"); 12/10 22:16
39F:→ cjcat2266:这是AS3的判断法,AS2的我记得写法一样 12/10 22:16
40F:→ etrexetrex:好像不能 12/10 22:20
41F:→ etrexetrex:if (mc instanceof mx.core.UIComponent) 这样可以 12/10 22:32
※ 编辑: etrexetrex 来自: 118.168.163.148 (12/10 22:35)
42F:推 tira0419:建议版主收录@.@" 12/11 11:45
43F:→ aquarianboy:其实是有收了 :) 12/11 11:52
44F:→ GGPlay:拜一下好文! 12/13 13:41







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP