-
illustrator(AI)文字转曲方法——很完美的功能哦
2009-08-19
在菜单 选择——文本对象里直接选择所有的文本对象,然后 按ctrl+shift+O 来转曲线!
需要注意的问题:
1、请在选择所有的文本前,却认所有的对象都已经解开了 锁定 和 隐藏 属性!
在全选所有文本之前,最好先做一个下 ctrl+alt+2 和 ctrl+alt+3 命令祛除
隐藏和锁定属性,然后再做选择——文本对象!
2、检查所转文字是否彻底的方法:
在 文字——查找字体 里看报告,如果报告没有发现文字对象,结果是 0 的话,就
全部转换完成了!或在窗口--文档信息面板中查看文字信息为0则可。
3、转曲线,一般是送去输出中心出菲林前才做的事情,请一定要把原来的文本版本
的文件留一个备份,以防不测,然后用副本做一个曲线版的文件送去出菲林!! -
flash 屏蔽右键 屏蔽菜单及禁止缩放代码
2009-05-25
Stage.showMenu=false;//屏蔽右键,当然这样无法完全屏蔽
Stage.scaleMode = "noBorder";//播放器无菜单
Stage.scaleMode = "noScale";//禁止缩放 -
flash全屏播放代码(在播放器里的)转
2009-05-08
flash全屏播放代码(在播放器里的)
许多人都看过这样的效果:把光盘放入光驱后,光盘自动运行,接着便是一段 Flash 制作的开场动画,动画是全屏播放的,且右键点击无效,动画播放结束后,出现“关闭”按钮,单击该按钮后,全屏动画关闭。
其实上面提到的全屏播放以及取消右键菜单等效果都是靠 Fscommand 指令在发挥作用。 Fscommand 指令主要是用来控制 Flash 影片播放器的,但也可以用来打开其它的应用程序。 Fscommand 指令只有在 Flash 影片播放器执行时才有效( .swf 和 .exe ),在 Flash 制作过程中,按“ Ctrl+Enter ”预览动画,以及把动画发布成网页文件时,此指令无法发挥它的功能。
Fscommand 指令使用的语法是: Fscommand("command","arguments")
Command 是指令的相关命令, arguments 是命令的参数。
下面我们就来讲讲如何通过 Fscommand 指令来实现 全屏播放 、取消 Flash 播放时的右键菜单以及关闭 Flash 动画。
1 、全屏播放 Flash
“ Fullscreen ”是全屏的意思,在默认的情况下, Flash 动画不是以全屏播放( false ),如果需要让动画以全屏状态播放,就必须把 Fullscreen 命令设置为 True ,写为:
Fscommand ("Fullscreen","True");
根据需要,我们可以把它写到帧、按钮、 MC ( Movie Clip )中。
2 、取消右键菜单
Showmenu 命令是用来设置是( True )否( false )显示 Flash 动画播放器的快捷菜单的全部指令,即右击鼠标时弹出的菜单,默认为 True ,如果要取消弹出的菜单,必须在第一帧这样设置:
Fscommand ("showmenu","false");
3 、关闭动画
quit 命令是用来关闭播放器的 .swf 和 .exe 文件,该命令没有参数,写为:
fscommand ("quit") ;
如果你想在 flash 动画结束时出现一个关闭动画的按钮,可以按下面的步骤做。
执行“ Insert ”下的“ New Symbol ”(或按 Ctrl+F8 ),在弹出的窗口中选 Button ,然后制作一个简单的按钮,回到场景中,选中最后一帧,从“ Library ”中把刚刚建立的按钮拖到场景中,因为该按钮在动画的最后才显示。
给按钮写上如下代码,则实现按下按钮即关闭 flash 动画。
on (release)
{
fscommand ("quit");
} -
转nga-更极限的TPS——霓裳版双圣印宏更新!
2009-04-21
更极限的TPS——霓裳版双圣印宏更新!多款新宏放出,另有少量细节探讨 提出:[ http://bbs.ngacn.cc/read.php?tid=2054892&fpage=1全技能双圣印一键宏 ] 以来有不少朋友进行了测试,提出了很多问题。经过这几CD的实践和总结,现尝试进一步完善 [::艾泽拉斯国家地理 BBS.NGACN.CC::] 首先我不赞同任何情况都无脑一键按宏,只有理解了宏的机制,才能真正发挥出宏的作用. 老宏的时间轴是: -----------|<--------9秒奉献--------->| 时间:0--1.5--3--4.5--6--7.5--9--10.5--12--13.5--15--16.5--18 技能:锤-奉献----神盾--锤--审判----奉献---锤---神盾--------审判--锤 ----------------------|<--------9秒神盾---------->| -------------------------------|<-----------9秒审判----------->| 从思路上说,把审判,奉献和神盾都卡9秒CD错开互相的冲突是这一宏的核心。 可以想象理想的最大化tps状态就是所有技能都能到CD就用,那么理论的完美主动tps就是白字tps+正义之锤tps+奉献tps+审判tps+圣印tps 这是不可能达到的状态。实际各种技能循环仇恨的高低,就看与理论完美tps的差距,差距越小,这种技能循环仇恨越高 这一宏的技能循环相对理想值损失的tps源于9秒的奉献和审判,一个18秒循环少了2跳奉献,延迟了2秒审判。因此损失tps=(奉献tps+审判tps)/9 再看圣印部分,切换双圣印每个循环有6秒刷新复仇,12秒打殉难,总的tps=5层复仇dot+2/3殉难圣印tps,另外有2/3次正义之锤带殉难;而审判则是殉难审判和复仇审判各一半 事实上殉难审判不管用快武器还是慢武器,伤害都要高于复仇审判(除非法伤武器)。因此时间轴不变略微修改一下技能顺序,把6秒的刷新复仇放在2次审判之间,就可以实现全部审判都用殉难审判 由此推出更极限TPS的 新·霓裳版一键极限仇恨宏: /startattack /castsequence reset=8/combat 正义之锤,奉献,殉难圣印,神圣之盾,正义之锤,圣光审判,复仇圣印,奉献,正义之锤,神圣之盾,殉难圣印,圣光审判 实际上顺序并不是唯一的,上面的宏相对比较符合神盾-飞盾-审判的开怪起手顺序,开始挂复仇或者殉难都可以——挂殉难起手仇恨高一点,但是2个循环之后才能叠满5复仇;开复仇则是第一个审判伤害低(旧宏也是),1个循环叠满复仇,慢武器推荐挂殉难起手 比如想快速叠满复仇,并且不会习惯性在怪近身前就扔出第一个审判,那么可以用这个顺序挂复仇开局: /startattack /castsequence reset=8/combat 正义之锤,圣光审判,复仇圣印,奉献,正义之锤,神圣之盾,殉难圣印,圣光审判,正义之锤,奉献,神圣之盾 这个顺序的宏只开了2次圣印,稍微省点蓝但是循环结束锤子还1.5秒冷却,会听到“技能没准备好”的提示,要再按 还可以变化出其他一系列宏,比如对于恶魔亡灵怪可以驱邪(3.1还没来),把上面的宏末尾神盾之前添一个驱邪术就成了完美极限恶魔tps宏: /startattack /castsequence reset=8/combat 正义之锤,圣光审判,复仇圣印,奉献,正义之锤,神圣之盾,殉难圣印,圣光审判,正义之锤,奉献,驱邪术,神圣之盾 适用也很广泛,开好神盾,飞盾驱邪起手接这个宏循环下去;或者把宏1的第一个殉难改成驱邪也可以 用这个宏打了布胖WMO第一 4412TPS [ http://wmo.178.com/combat/detail/65214721#damageout ] 全技能的双圣印系列宏特点是: 1.保证6秒正义之锤,9秒审判和奉献无冲突 2.全程无缝神盾 3.全程保持5复仇Dot+2/3时间有殉难圣印 4.所有审判均为殉难审判,2/3的正义之锤带有殉难圣印 5.所有GCD全满 6.技能顺序不唯一,可按各人习惯调节 列举一些演变版本: 如果是2T或者其他不需要开神盾的场合(比如鸡蛋)可以: /startattack /castsequence reset=8/combat 正义之锤,圣光审判,复仇圣印,奉献,正义之锤,殉难圣印,圣光审判,正义之锤,奉献 省了神盾,不过要等技能,得狂按。如果是可驱邪目标最后再加一个驱邪 如果觉得整合全技能太死板,想自己控制奉献和神盾来省蓝,可以只提取关键顺序,比如 /startattack /castsequence reset=8/combat 正义之锤,圣光审判,复仇圣印,正义之锤,殉难圣印,圣光审判,正义之锤 做这样一个宏完成切圣印和9秒审判6秒锤子交替,配合手动的神盾和奉献,相对灵活,不过要注意一下技能CD,最好宏图标用第一个"?"来显示当前技能 WLK有了正义盾击以后,公共CD完全占满,没法实现双圣印切换,上次提出的WLK宏依旧完美无瑕: /startattack /castsequence reset=8/combat 正义之锤,奉献,正义盾击,神圣之盾,正义之锤,圣光审判,正义盾击,奉献,正义之锤,神圣之盾,正义盾击,圣光审判 但是注意到驱邪全物种可用,那么如果驱邪加入循环会怎样呢?显然要把驱邪加入18秒循环,就只能代替一个审判/奉献的位置。 WLK应该主流复仇审判了,80级的驱邪术是1028+15%AP+15%sp,奉献是904+32%AP+32%SP,复仇审判是(17.5AP%+28%SP)*1.5;而审判+格挡值的圣契又能极大提高生存和仇恨。。。。 所以最大化tps的18秒循环里没有驱邪的位置!! 驱邪只能在为了省蓝才有机会代替一个奉献,这里给出无奉献简化版宏: /startattack /castsequence reset=8/combat 正义之锤,驱邪术,正义盾击,神圣之盾,正义之锤,圣光审判,正义盾击,正义之锤,神圣之盾,正义盾击,圣光审判 配合手动奉献,适合小规模战斗。 另外对手动流+复仇流来说,复仇审判无关DPH,所以法伤武器的表现优于物理武器,可以在审判之前换武器,略微提高一点审判伤害,不过操作复杂不少: 因为战斗中换武器要触发GCD,所以类似 /equip 审判之锤 /cast 圣光审判 这样的宏是无法实现的。不过换武器不受GCD限制,所以这个宏是可行的: /cast 圣光审判 /equip 村正 可以实现放审判再换村正,只触发一个GCD 因此做2个宏: 宏1: #showtooltip 圣光审判 /cast 圣光审判 /equip 村正 宏2: #shotooltip 正义之锤 /startattack /cast 正义之锤 /equip 审判之锤 分别代替正义之锤和圣光审判使用,当然正义之锤还是不能拖出技能栏的。 手动操作可按 宏1 宏2 宏2 宏1 正义之锤 这个顺序(5技能一循环里用宏取代4次技能),即可实现打完正义之锤换法伤武器审判,审判完换回物理武器 很麻烦的操作,略微提升一点TPS 先写到这里,加班太累了以后再更新。。。
-
转--[分享]常用宏命令解析,及我所使用的宏。
2009-04-21
[分享]常用宏命令解析,及我所使用的宏。
前言:宏不是万能的,但是宏能简化我们的操作,让我们更多的享受游戏所带来的乐趣。
常用宏命令解析
/script SetCVar("cameraDistanceMax", 50)
调整视野距离。
#showtooltip
显示相关技能名称,并且显示冷却、效果。
/targetexact
精确匹配目标。
/target
目标。
/cast
施放。
/use
使用。
/castsequence reset=5/combat
按顺序施法或使用物品命令宏,战斗中5秒不按重置。
/castrandom
随机施放或使用物品。
/userandom
随机使用物品。
/startattack
开始功击。
/stopcasting
停止功击。
/console Sound_EnableSFX 0
/console Sound_EnableSFX 1
用于暂时关闭游戏音效,阻止宏报错时发出的哒哒声。
/script UIErrorsFrame:Clear()
清除屏幕红字、错误显示。
/dismount
下马。
[flyable]
允许飞行。
[noflyable]
不允许飞行。
[combat]
战斗中。
[nocombat]
战斗外。
/equip
装备。
[equipped:]
已经装备。
[noequipped:]
没有装备
[stance:1/2/3]
姿态。
[modifier:alt/shift/ctrl]
组合键。
[button:1/3/2]
鼠标左、中、右键。
/changeactionbar 1
切换到动作条1。
/swapactionbar
动作条互换。
[pet]
有宠物。
[nopet]
没有宠物。
[help]
目标友善。
[harm]
目标敌对。
[exists]
判断特定目标是否存在。
[dead]
判断特定目标是否死亡。
[mounted]
判断是否在坐骑上。
[swimming]
判断是否在游泳。
[outdoors]
判断你是否在室外。
[indoors]
判断你是否在室内。
[mouseover]
鼠标指向。
[focus]
焦点。
/petattack
让宠物开始攻击一个目标。
/cancelaura
取消Buff。
/stopmacro
停止宏,可加条件判定。
我所使用的宏
- F4拉DZ和JD拉镜像宏
#showtooltip 复仇者之盾
/stopcasting
/target 维尔莱斯
/cast 复仇者之盾
#showtooltip 复仇者之盾
/stopcasting
/target 邪恶镜像
/cast 复仇者之盾 - 专业综合类宏
#showtooltip [flyable]紫色灵翼幼龙;拉扎什迅猛龙
/dismount
/castrandom [flyable]紫色灵翼幼龙,紫色骑乘虚空鳐,迅捷紫色狮鹫;[noflyable]拉扎什迅猛龙,大型美酒节科多兽,战马,银色作战塔布羊,黑色战豹
#showtooltip 选矿
/cast [button:1]选矿;[button:2]珠宝加工;[button:3]锻造
#showtooltip 钓鱼
/equip [button:1]塞瑟的石墨鱼竿
/cast [button:1]钓鱼;[button:2]烹饪;[button:3]急救 - 换武器宏
#showtooltip [equipped:单手锤]卡拉波水晶之塔;[equipped:单手剑]龙鳞;[equipped:双手剑]奥伯莱恩,裂魂之剑
/stopcasting
/equip [button:1]卡拉波水晶之塔;[button:2]龙鳞;[button:3]奥伯莱恩,裂魂之剑
/equip [button:1]圣光壁垒;[button:2]卡兹洛加之心
/equip [button:1]绝对真理圣契;[button:2]光明使者宝典;[button:3]神圣裁决圣契 - 开怪宏
#showtooltip
/startattack
/console Sound_EnableSFX 0
/castsequence reset=8/combat 复仇者之盾,神圣之盾,圣光审判
/console Sound_EnableSFX 1
/script UIErrorsFrame:Clear() - 一键坦克宏(PS:至少强化一点审判)[ 传送门:更极限的TPS—霓裳版双圣印宏更新! ]
#showtooltip
/startattack
/console Sound_EnableSFX 0
/castsequence reset=8/combat 正义之锤,奉献,殉难圣印,神圣之盾,正义之锤,圣光审判,复仇圣印,奉献,正义之锤,神圣之盾,殉难圣印,圣光审判
/console Sound_EnableSFX 1
/script UIErrorsFrame:Clear() - 对目标(友善)或目标的目标(友善)施放保护、拯救、牺牲等技能宏
#showtooltip 保护之手
/stopcasting
/cancelAura 保护之手
/cast [help][target=targettarget,help]保护之手
#showtooltip 拯救之手
/stopcasting
/cancelAura 拯救之手
/cast [help][target=targettarget,help]拯救之手
#showtooltip 牺牲之手
/stopcasting
/cast [help][target=targettarget,help]牺牲之手 - 无敌清DeBuff宏
#showtooltip 圣盾术
/stopcasting
/cancelAura 圣盾术
/cast 圣盾术 - 圣印切换宏(节省技能按键)
#showtooltip [modifier:alt]复仇圣印;殉难圣印
/stopcasting
/cast [modifier:alt]复仇圣印;殉难圣印
/in 90 /e "圣印"将于30秒后消失!
#showtooltip [modifier:alt]光明圣印;智慧圣印
/stopcasting
/cast [modifier:alt]光明圣印;智慧圣印
/in 90 /e "圣印"将于30秒后消失!
#showtooltip [modifier:alt]正义圣印;公正圣印
/stopcasting
/cast [modifier:alt]正义圣印;公正圣印
/in 90 /e "圣印"将于30秒后消失!
- F4拉DZ和JD拉镜像宏
-
flash中声音的控制代码 转
2009-03-24
简单播放音乐 1. 首先打开新的Flash文件, 把声音导入库中 (还摸不清介面的朋友就按ctrl+r) 2. 导入之后到库中定义声音的ID, 如图: *** 这里的ID和场景上的实体名是不一样的 *** 3. 接下来就在第一帧编写代码, 如下 mySound = new Sound(); //定义声音类 mySound.attachSound("tomato"); //提取库中我们所设定的ID mySound.start(); //开始播放声音 4. 测试结果.. 音乐的开始, 停止和循环 mySound.start([Secondsoffset], loop); start当中的两个参数分别为Secondsoffset, Seconds就是秒数而offset就是抵消或取消的意思...所以简单的说就是取消开始播放,以秒数来计算... 没有定义的话就是0, 另外一个loop就是循环了... mySound.start(5, 99); 这个意思就是音乐从第5秒开始播放, 并循环99次, 这里提供了个例子为mySound.start(0,99); 点击浏览该文件 mySound.stop(); mySound.stop("tomato"); //如果new Sound没有定义的话就这样使用, 不然多个声音会全部停止 这个很简单不用解释了吧...就是停止音乐 我们看到某些网站所使用的一个按钮控制播放和停止的效果就是使用这些就可以达成了, 如: mySound = new Sound(); mySound.attachSound("tomato"); mySound.start(0,99); //音乐开始播放并循环99次 var music = true; //定义一个变量记录目前音乐是否是在播放, 因为音乐已经播放所以设定为true btn.onRelease = function() { if(music) { //当变量为true时就表示音乐是在播放 mySound.stop(); //使用stop设定音乐停止 music = false; //变量记录false为音乐停止 } else { //以下的和以上相反 mySound.start(0,99); music = play; } } setPan 和 setVolume mySound.setPan(pan); pan的值是介于 -100 到 100, 用意在于设定喇叭的平衡... -100为只能左边的喇叭听到声音, 100为右边的, 而0就是平衡点, 两个喇叭都能听到声音 例如: mySound = new Sound(); mySound.attachSound("tomato"); mySound.start(0, 10); var speaker = -100; //变量设定为-100, 即是从左边喇叭开始 mySound.setPan(speaker); //设定喇叭平衡 function pan() { //设定函数并通过setInterval每秒调整平衡 speaker += 20; //每秒平衡偏移20 mySound.setPan(speaker); //设定喇叭的平衡 if(speaker > 100) { //当音乐完全偏移到右边喇叭播放的时候就停止 mySound.stop(); clearInterval(p); } } var p = setInterval(pan, 1000); //开始每秒执行喇叭平衡 mySound.setVolume(volume); volume为0 - 100, 0为静音, 100为最大 mySound = new Sound(); mySound.attachSound("tomato"); mySound.start(0, 99); var top = key.vol._y; //定义拖动按钮的最高点 var left = right = key.vol._x; //定义拖动左右的范围 var bottom = key.vol._y+100; //定义拖动按钮的最低点 key.vol.onPress = function() { this.startDrag(true,left,top,right,bottom); //按钮按下拖动范围 } onEnterFrame = function() { v = int(key.textInput.value.text); //取得输入框内的值 mySound.setVolume(v); //设定音量 } Position, Duration 和 暂停 mySound.position(); 唯读指令, 主要是取得目前播放音乐的毫秒数(1秒 = 1000毫秒), 在音乐播放之后才能够取得, 在一开始start()之后使用是无法取得的 mySound.duration(); 唯读指令, 主要是取得音乐的总毫秒数 要使音乐暂停, 播放的时候再继续之前暂停的位置开始播放, 我们可以先取得按钮按下暂停时的position以取得位置, 然后再次按下播放的时候就使用start()当中的SecondsOffset使音乐从暂停的部分开始播放, 如: mySound = new Sound(); mySound.attachSound("tomato"); var SecondsOffset = 0; //设定SecondsOffset为0 p1.onRelease = function() { mySound.start(SecondsOffset, 0); //播放按钮按下开始从0offset播放 } p2.onRelease = function() { SecondsOffset = mySound.position/1000; //暂停按钮按下时记录目前位置并换成秒数 mySound.stop(); //音乐暂停 } onEnterFrame = function() { //这里是循环部分 if(mySound.position == mySound.duration) { //如果播放的毫秒数等于音乐总毫秒数 mySound.start(0, 99); //开始循环播放99次 } } 只要会了以上的方法, 倒退播放和快速播放就非常简单了, 如下: 1. 场景上建立两个按钮, 分别为(倒退 rev 和 快速播放 ff) 2. 在第一帧使用以下代码 : mySound = new Sound(); mySound.attachSound("tomato"); mySound.start(); var SecondsOffset = 0; var reverse = foward = false; //设定倒退和前进变量为false onEnterFrame = function () { if (reverse && mySound.position > 0) { //当倒退按下且音乐秒数大于0 mySound.stop(); //音乐停止 SecondsOffset -= .5; //offset倒退0.5秒 mySound.start(SecondsOffset, 0); //音乐从倒退的0.5秒开始播放 } if (foward && mySound.position <= mySound.duration) { //当快速播放按下且音乐不为结束 mySound.stop(); SecondsOffset += .5; //offset前进0.5秒 mySound.start(SecondsOffset, 0); } rev.onPress = function() { //当倒退按下并取得position SecondsOffset = mySound.position/1000; reverse = true; //reverse变量为true }; rev.onRelease = function() { //当倒退放开就设定reverse变量为false reverse = false; } ff.onPress = function() { //同上 SecondsOffset = mySound.position/1000; foward = true; }; ff.onRelease = function() { foward = false; } }; 至于loadSound部分就写一下进度条的写法 1. 在场景上建立一个为100%长度的MC(loadBar) 2. 在第一帧使用以下代码 : onLoad = function () { mySound = new Sound(); mySound.loadSound("tomato.mp3"); //载入同一目录中的MP3 var percent = 0; //%一开始为0 loadBar._xscale = percent; //进度条的宽度比例为percent }; onEnterFrame = function () { mySoundBytesTotal = mySound.getBytesTotal(); //取得文件的size mySoundBytesLoaded = mySound.getBytesLoaded(); //取得目前文件所载入的size percent = int(mySoundBytesLoaded/mySoundBytesTotal*100); //计算出文件所载入的比例 loadBar._xscale = percent; //设定进度条宽度比例 if (percent>=100) { //当完全载入之后 delete onEnterFrame; //删除循环 mySound.start(); //音乐开始播放 } }; Q1. 为何loadMovie当中的swf音乐无法播放? ans: 只要在swf当中把 mySound = new Sound() 换成 mySound = new Sound(this) 就可以了 Q2. 为何不能同时设定两首音乐不同的音量? ans: 一般你们会这样使用AS mySound1 = new Sound(); mySound1.attachSound("tomato1"); mySound1.start(); mySound2 = new Sound(); mySound2.attachSound("tomato2"); mySound2.setVolume(50); //另外一首音量为50 mySound2.start(); 但这样是错误的, 正确方法是分别把音乐分开在不同的层当中 : mySound1 = new Sound(this); mySound1.attachSound("tomato1"); mySound1.start(); createEmptyMovieClip("mc", 0); mySound2 = new Sound(mc); mySound2.attachSound("tomato2"); mySound2.setVolume(50); mySound2.start();
-
转 声音控制自用资料
2008-11-03
http://www.blueidea.com/tech/multimedia/2004/2040.asp
基础知识:
在开始讲解声音控制之前,先让大家熟悉一下声音的各种调节参数,这在一会儿的效果解释的时候,可以让你更容易地去理解。下面为大家列出FLASH中常用的音量控制方法、函数以及属性。
注意:在这其中,mySound是一个声音对象,我们在用as来控制声音之前,一定要先使用构造函数newSound创建声音对象。只有先创建 声音对象以后,FLASH才可以调用声音对象的方法。还有,FLASH的action是区分大小写的,所以在写action的时候,一定要注意。
mySound=newSound();//新建一个声音对象,对象的名称是mySound。
声音对象的方法:
播放与停止:
mySound.start();开始播放声音。如想在声音的某一秒中播放,可输入Sound.start(2),即:从声音的第二秒开始播放。(这里的单位只能是秒)
mySound.stop();停止声音的播放。
音量控制:(范围从0-100)
mySound.getVolume();获取当前的音量大小。
mySound.setVolume();设置当前音乐的音量。
左/右均衡:(范围从-100到100)
mySound.getPan();获取左右均衡的值。
mySound.setPan();设置左右均衡的值。
声道音量:
mySound.getTransform();获取左右声音的音量。
mySound.setTransform();设置左右声道的音量。
这是一个比较特殊的参数,在设置setTransform前,要先为它新建一个对像才可以。因为篇幅有限,在这里不为大家讲解了。如果有兴趣,请参看FLASH的帮助文件。
读取声音:
mySound.loadSound();从外部载入声音。
mySound.attachSound();从库中加载声音。
mySound.getBytesLoaded();获取声音载入的字节数。
mySound.getBytesTotal();获取声音的总字节数。
声音对象的属性:
mySound.duration;声音的长度。(单位为毫秒。即:1000毫秒=1秒)
mySound.position;声音已播放的毫秒数。(单位为毫秒)
声音对象的函数:
mySound.onLoad;声音载入时调用。
mySound.onComplete;声音播放完成时调用。
简单实例:
通过下面这个例子,主要是让大家自己动手,了解一下声音的各个方法以及属性的用法。
首先,我们先要让声音播放起来。用as来控制,就需要用as来读取声音。用as读取声音有两种方式:attachSound和loadSound。
attachSound是从FLASH的库中挷定一个声音。这个声音需要我们先导入一个声音文件。方法:文件→导入到库(选择一个声音文件,确定即 可)→打开库面板(窗口→库)→右键选择我们刚才导入的声音文件→在右键菜单中找到链接→选中为动作脚本导出,在标识符上为这个声音对象起一个名称。然后 用attachSound(标识符),来读取声音。
loadSound则是从外部读取声音文件,方法:loadSound(文件名)。从外部读取文件时只允许载入MP3文件。其它格式是不能够读取的。
记得文件名和标识符要加上引号,否则FLASH会将它当做一个变量处理。
了解了as读取声音的两种方法以后,我们只需要用start()方法将这个声音播放即可。
step1:新建一个FLASH影片、并保存,然后拷贝一首mp3过来,将它和FLASH影片放到同一目录、并更名为mySound1.mp3。
step2:选择文件→导入到库(选中我们刚才拷过来的mySound1.mp3)
step3:打开库面板,右键单击我们刚导入的声音文件,并选择链接,勾选为动作脚本导出和在第一帧导出。在上面的标识符上输入:“mySound1”(不带引号)。
注意:这里为第一帧导出做一下解释。在FLASH中,库中的内容并不是全部导出到SWF中的。只有在主场景,或者其它场景中用到了库中的文件,那么 在导出SWF时,才会将它导出。像这几首mp3,它并没有在其它的所需要的场景中应用。而我们在链接的时候,勾选在第一帧导出,就可以让FLASH在导出 SWF文件的时候,在第一帧之前将它导出,这样,就保证了文件的完整性。否则,如果不勾选在第一帧导出,并且它没有在其它的场景中出现,那么在导出的 SWF文件时,就找不到这个文件了。
step4:右键单击第一帧,选择动作。如下图操作进行

OK,试着按Ctrl+回车键试一下有没有效果...就是这样简单:)。可以看到我们上面是用attachSound方法读取的库中的影片,下面, 把mySound.attachSound("mySound1");这句话改为mySound.loadSound("mySound1.mp3")。 注意:step1的操作,你是否有执行。然后再按Ctrl+回车键测试场景,试一下效果。如果这两步都能够听到声音,说明正确,可以继续进行。否则请检查 你的脚本的大小字是否正确、外部文件名与脚本上是否相同,如果不行,就换几首Mp3试一下。
上面是最简单的播放声音的代码了。下面我们再在上面的基础上,添加设置音量的代码。在mySound.start();前添加 “mySound.setVolume(100);”现在测试影片,应该和刚才没有区别。因为FLASH的音量在默认时是设置为100的。现在把100改 为20,音量是不是明显的变小了?
现在再试一下在下面添加“mySound.setPan(100);”这个是设置声音的左右均衡值的。默认设置为0。即:左右两边的音量是一样 的。如果设置为100,那么右边耳机的音量就为我们设置的volume的音量,而左面就没有声音,如果为-100,那么情况相反。
声音控制分析:
讲完了基础应用的方法,我们下面就通过实例来为大家讲解一下实现FLASH声音控制的方法。
点击浏览该文件
(我做了一些压缩,而且裁了,所以音乐都不完全)这是一个应用在网页中的背景音乐控制器。可以让来访者自由地控制背景音乐。前面的on/off是用来控制声音的播放与暂停,VOLUME后面的滑块是用来控制声音音量的。最后面的1/2/3/4/5/6的小方块,是控制哪一首背景音乐的。
声音的暂停与播放比较简单,唯一的难点是:FLASH中并没有提供暂停的方法,只有停止与播放,就是说当我们用stop()命令来停止声音播放 时,是没有直接的方法来从断点进行播放的(这里所说没有直接方法,是指FLASH中没有提供直接的方法)。但FLASH为我们提供了position的属 性,是用来获取声音已播放到位置的毫秒数。这样,我们可以通过当鼠标按下on/off这个按钮时,获取当前声音所播放到的毫秒数,并赋给一个变量。而在下 一次点击时,通过调用这个变量,然后从这个位置开始播放。用通俗一些的话来说,就是这个变量记录了声音所在的位置,然后在下一次播放的时候从这个位置开始 播放。
声音的音量控制是通过拖动滑块的位置来设置声音的大小的。准确一点儿说,是当我们在拖动小滑块的同时,改变了滑块的x坐标,而音量则是通过随时获取这个小滑动的坐标,然后根据坐标的位置设置音量的大小。
最后的6个载入不同声音的按钮,则是通过attachSound()或者是loadSound()方法将声音载入进来,并播放。不过这里有一个 需要注意的地方。那就是当我们通过attachSound()方法挷定一声音的时候,可以同时挷定多个声音,就是说当我们挷定sound1,播放,再挷定 sound2,播放的时候,就会出现两个声音同时播放的现象。你可以输入以下代码试验一下。
//在输入以下代码的时候,注意你的库中是否有sound1和sound2标识的两个声音。
mySound=newSound();
mySound.attachSound("sound1");
mySound.start();
mySound.attachSound("sound2");
mySound.start();这时你应该能听到两个声音在同时播放,很杂乱。解决的方法,就是当我们在挷定第二个声音之前用mySound.stop()。但是通过loadSound()方法的时候,则没有此项问题。
-
圣骑士2.0常用宏收集
2008-08-06
圣74一键FARM宏:
/castsequence [button:2,modifier:alt]圣光术;[button:2]圣光闪现; reset=target/combat 十字军圣印,审判,正义圣印,审判,正义圣印,审判
左键点击,依次施放10字军圣印,审判,正义圣印,审判,正义圣印,审判。
直接点击右键,施放圣光闪现,ALT+右键=圣光术,变更目标或战斗结束后重置。
他会按照安排好的宏的顺序,一个一个接着施放下去,而且,还不会报错.非常适合我们小号74的无聊练级。
正义防御宏:
#showtooltip 正义防御
/cast [help][target=targettarget,help][target=party1targettarget,help]正义防御
这个宏的作用是,如果你的目标是友善的(不一定是队友),那么,施放正义防护;如果你的目标是怪物,那么,对怪物的目标施放正义防护;如果你的目标什么都没有,那么,对你的第一个队友,也就是顺序排下来的第2个头像施放正义防御.
PS:我不知道中文夹杂英文可以不可以用,如果可以用的话,那就好办,如果不可以用,但是你 的MT的名字碰巧是英文的,那么可以把PARTY1替换成你们MT的名字,这样的话,在你没有选择任何目标后,你就会对MT的目标的目标的,也即OT的队 友施放正义防御,怎么样?爽吧|?
一键防御改良宏:
#showtooltip 正义防御
/cast [help][target=targettarget,help][target=party1targettarget,help]正义防御;[button:2]圣佑术
这个宏如果你使用的话,那么,右键点击他,则是施放无敌,左键点击的话,就是施放刚才那种牛B的正义防护了.
左键清洁,右键纯洁宏:
#showtooltip 纯净术
/cast [button:2]纯净术;[help][target=targettarget,help]清洁术/code]
直接鼠标点击或按快捷键就是施放清洁术,有特殊需要施放纯净术的时候,则鼠标右键点击一下。
如果是在打战歌的,并且是护旗手,我把这个宏再扩大下,
左键清洁,右键纯洁强化宏:
[code]#showtooltip 自由祝福
/cast [help][target=targettarget,help][modifier:shift,button:2]保护祝 福;[modifier:alt,button:2]圣光术;[modifier:shift]自由祝福;[modifier:alt]圣光闪现; [button:2]纯净术;清洁术
按住SHIFT,进入保护模式,则,+A是自由祝福,+B是保护祝福。
按住ALT,进入+血模式,+A=圣光闪现,+B=圣光术
其中,A=鼠标左键或快捷键,B=鼠标右键
制裁审判一键速发宏:
#showtooltip 制裁
/cast 制裁
/stopcasting
/cast 审判
这个宏就可以让你同时施放制裁和审判了。
如果你是惩戒的话,可以考虑下这个宏也不错,灵活性更大的多:
一键FARM宏:
#showtooltip 制裁
/castsequence reset=60/target/combat 制裁,审判,命令圣印(等级1),奉献,十字军打击
这个宏:如果你一直按的话,那么他会按着顺序,施放制裁,审判,一级命令,奉献,十字军打击。如果你施放了制裁不想马上施放审判的话,那你不按他就不会施放审判。每60秒重置一次,或者改变目标,或者重新进入战斗姿态。
一键打贼宏:
#showtooltip 奉献
/cast [HARM]奉献;奉献(等级 1)
作用原理:1,有目标并且目标可以攻击时,则使用顶级奉献;
2,没目标时,则使用1级奉献
强大的一键4祝福宏:
#showtooltip [MODIFIER:SHIFT]智慧祝福[MODIFIER:ALT]王者祝福
[MODIFIER:SHIFT,MODIFIER:ALT]拯救祝福;力量祝福
/cast [button:2][modifier:shift]强效智慧祝福[MODIFIER:ALT]强效王者祝福[MODIFIER:CTRL]强效拯救祝 福[MODIFIER:SHIFT,MODIFIER:ALT]强效庇护祝福;[MODIFIER:SHIFT]智慧祝福[MODIFIER:ALT]王 者祝福[MODIFIER:CTRL]拯救祝福[MODIFIER:SHIFT,MODIFIER:ALT]庇护祝福
A,力量祝福;B强效力量祝福。
SHIFT+A,则是智慧祝福;SHIFT+B,则是强效智慧祝福
ALT+A,王者祝福;ALT+B ,强效王者祝福
CTRL+A,拯救祝福;CTRL+B,强效拯救祝福
SHIT+ALT+A,庇护祝福;SHIFT+ALT+B,强效庇护祝福
这个宏记不住不要紧:1,按住ALT键,那么这个宏就会显示王者祝福的图表
2,按下CTRL键就会显示拯救祝福的图表
3,点击左键,就可以施放单体的王者或拯救,点击鼠标右键就可以施放强效祝福了。
智能加血宏:
/cast [help][target=targettarget,help]
如果你想把你的圣光术+在里面那么你直接写成
#showtooltip 圣光术
/cast [help][target=targettarget,help]圣光术
这样的话,你的圣光术在施放起来的时候,就会对友善目标直接施放,对敌对的目标的目标直接施放,换成圣光闪现也行。
成功施放祝福后M队友的宏:(这样不会造成刷屏现象)
#showtootip 保护祝福
/cast [help]保护祝福
/stopmarco
/script if (UnitName("Target") ~=nil and UnitIsFriend("player","Target")) then CastSpellByName("复生\\");SendChatMessage("我已经对你施放了保护祝福了,安心爆怪 吧","Whisper","通用语\\",UnitName"Target"); end
这个宏的作用原理:当你对你友善的目标施放保护祝福后,他才会对你施放保护祝福的那个人说:“我已经对你施放了保护祝福了,安心爆怪吧。”(如果你想改语言的话,可以把这些红字改成你想说的话就可以。
PS:1,血精灵玩家把 "通用语\\"="兽人语\\"就可以了,当然,你也可以说血精灵语,但我不保证每个人都听得懂。
2,如果你想施放自由祝福,那么保护祝福换成自己有祝福就可以了。
一键神恩宏:
#showtooltip 神恩术
/cast 神恩术
/stopcasting
/cast 圣光术
这个是我直接复制子菲鱼那来的,不同的就是+了个法术显示图标。
圣光术强化宏:
#showtooltip 圣光术
/cast [modifier:shift,target=player]圣光术;[help][target=targettarget,help]圣光术
这样的话,你如果按住SHIFT,就会把目标改成你,然后再施放圣光术,由于会把目标切换成自己,所以可能不太好用,我等等看看怎么饶过[HELP],而不切换目标就给自己使用+血吧。
有命令圣印时释放审判,没有命令圣印时释放命令圣印的宏:
#showtooltip
/castsequence 命令圣印,审判
这个宏,有命令才审判,没命令就不审判,审判完了再按,又是命令。
点一下施放无敌,再点取消无敌宏:
#showtooltip 圣盾术
/stopcasting
/cancelAura 圣盾术
/cast 圣盾术
有无敌就点掉,没无敌就施放
鼠标划过目标释放清洁宏:
#showtooltip 清洁术
/cast [modifier:shift,target=player]清洁术;[target=mouseover,help][help][target=targettarget,help]清洁术
这个宏我觉得应该是可以用的,你可以去尝试下。
这个宏的作用是: 1,首先判断你是否按住了SHIFT键,如果按住了,则对自己施放清洁术
2,如果没按住SHIFT,那么,首先如果你的鼠标划过了一个目标并且他是友善的,则对你划过的友善目标施放清洁术
3,如果你的鼠标没有划过任何目标,则对你选择的友善目标施放清洁术
4,如果你选择的目标是非友善的,那么,对你的这个选择的非友善的目标的目标,并且你这个非友善的目标的目标是友善的,则对他施放清洁术(汗,绕口令!)
看得出,你要这个宏的主要目的是为了打竞技场,那么,我觉得,为这个宏再+一个功能你会更喜欢,那就是选择焦点目标施放清洁术。条件的话,你可以自己选择喜欢的条件。我这里整合一个给你。
首先,随便新建一个宏,把宏的命令设置为:
/FOCUS
然后,对你想把其变为你的焦点目标的人使用这个宏,则这个人就会成为你的焦点人物。然后
#showtooltip 清洁术
/cast [modifier:shift,target=player]清洁术;[target=mouseover,help][help] [target=targettarget,help]清洁术;[modifier:alt][target=focus]清洁术
这个宏的作用就是,除了刚才的作用之外,如果你按住了ALT键,那么,则对你的焦点目标施放清洁术。当然,我还没测试过,如果你想用的话,就帮忙测试下,呵呵。
正义、审判循环宏:
#showtooltip 审判
/castsequence [modifier:shift]愤怒之锤; reset=target/combat正义圣印,审判
如果技能的名字不对,还请改一下。
这个宏的作用是:1,按一下就是正义,再按就是审判,然后再按又是正义,再按又是审判的循环。
2,如果按住SHIFT键再点这个宏,就可以施放愤怒之锤了。
鼠标划过施法宏:
/showtooltip 自由祝福
/cast [modifier:shift,button:2,target=player][modifier:shift,help] [modifier:shift,target=targettarget,help][modifier:shift,mouseover]自由祝 福;[button:2,target=player][help][target=targettarget,help][mouseover]圣光术
这个宏的原理:[help][target=targettarget,help] [mouseover]=首先考虑你的目标是否友善,如果是,则对其施放,如果你的目标非友善,你的目标的目标是友善的,那么,对你这个非友善的目标施 放,如果你没有目标,那么,对你鼠标划过的目标施放
1,直接点击,施放圣光;右键点击,对自己施放圣光
2,按住SHIFT,直接点击,施放自由;右键点击,对自己施放自由。
一键施放多技能宏:
/castsequence 战争践踏,xxx护符,元素掌握,闪电链条
一直狂按就会按顺序放了,如果想+自然迅捷的话,就在中间+上就好了。
简单的一键祝福宏:
#showtooltip xxx祝福
/cast [button:2]xx强效祝福;xxx祝福
左键一般祝福,右键强效祝福
只要替换下格式就好用了。
施放审判后,自动接命令宏:
/施放 审判
/stopcasting
/施放 命令圣印(等级 5)
使用十字军打击,同时释放审判:
/cast 审判
/stopcasting
/cast 十字军打击
这个宏,可以同时施放和十字军打击
十字军打击CD的时候就只审判,然后开启命令圣印:
这个宏的理论写法是
/castsequence 审判,命令圣印
/stopcasting
/cast 十字军打击
按一下施放审判,再按一下施放命令圣印,如果十字军打击的CD好了,那么就施放十字军打击,当然,前提是你身上有命令圣印,他才会施放十字军打击。
-
魔兽世界2.0 宏指南(测试)
2008-08-06
(注:WoW 2.0还在Beta阶段,因此以下条件选项随时可能被更改。)
在WoW 2.0中,宏和插件将会有翻天覆地的改变。最近,Slouken(Blizzard UI开发者)宣布了一个令人激动的宏的新特性,一系列条件选项将可以被应用于以下斜杠命令:/cast,/use,/target,/focus, /assist,/stopmacro,/cancelaura,/userandom,/castrandom,以及/castsequence。这个 帖子的目的就在于讲解如何应用它们。
注:虽然多数例子都使用了"/cast",但事实上这些条件选项对前面提到的所有斜杠命令都有效。
在2.0中,目前所用的大多数宏都将被废弃,因为在战斗中,任何用到CastSpellByName()或者TargetUnit()的宏都将不再有作用。更进一步的,多数“傻瓜逻辑”的宏也不会再有效。但是,你现在可以通过新的宏条件选项来实现许多流行宏的功能。
现在,使用“/cast”(“/施放”)非常简明,命令格式就是“/cast <法术名称>”(施放最高等级的法术)或者“/cast <法术名陈>(Rank <#>)”。比如说:
/施放 强效治疗术
/施放 奥术智慧(等级 3)
在新的系统中,你依然可以使用原来的这些格式,不过你现在可以加入条件选项来使得“/cast”更加灵活。“/cast”的新格式是:“/cast [<第一组条件选项>] <第一个法术名称>; [<第二组条件选项>] <第二个法术名称>; [<第三组条件选项>] <第三个法术名称>;...”。
现在让宏运作起来的方式就像这样:第一组条件选项被检测,如果它们成立,则第一个法术被施放,如果它们不成立,则第二组条件选项被检测,如果这个成立了, 下一个法术被施放,如此下去。但是,你必须牢记,只有一个法术会被施放。当一组条件选项被检测到成立时,相应的法术就会被施放,宏也就此结束。
当前可用的条件选项有:
help - 检测目标是否为友善
harm - 检测目标是否为敌对
combat - 检测你是否在战斗中
stance或stance:# - 检测你是否在姿态中,或是否在某个特定的姿态中(详见下)
stealth - 检测你是否潜行
modifier或modifier:shift|ctrl|alt - 检测命令被执行时是否某个特定的键被按下
equipped:<item> - 检测某个物品是否被装备。<item>可以是任何有效的装备槽,物品分类,或者物品子类
target = <unit> - 特殊条件选项,它把当前目标改变为任何有效的单位(详见下)
actionbar:<number> - 检测当前动作条是否为列出的那个
新的条件选项:
pet:<pet type 或 pet name> - 检测宠物是否存在。可以接受宠物类型(枭,熊,小鬼)或者名字(Fluffy,我家坏坏)作为条件。不带条件则检测是否有任何宠物存在。
mounted,swimming,flying - 检测是否在坐骑上,游泳,或者飞行中
indoors,outdoors - 检测是在室内还是室外
button:<#> - 检测某个特定的按钮被用来触发法术,默认为1(详见下)
exists 和 dead - 检测是否目标已经死亡,或是否真的存在
新的宏命令
---------------------------
/castsequence - 按顺序施放一组事先设定好的法术(详见下)
# show <法术> - 显示所列出法术的宏返回值
对于条件选项的一些额外技巧:
你可以在任何条件选项前加上“no”来得到反效果,比如,“nocombat”则在脱离战斗的情况下成立。
用逗号“,”来分隔条件选项作用和“and”一样,当条件选项同时成立时执行。
用斜杠“/”来分隔条件选项作用和“or”一样,当其中一个条件选项成立时执行。
在宏编辑器里按“?”图标将强制宏以当前法术的图标显示。
举例和姿态
这里有一些举例说明:
/施放 强效治疗术
非常简单,向你的目标施放强效治疗术。
/施放 [help] 强效治疗术
加入一个条件选项,当目标为友善时施放强效治疗术。
/施放 [help] 强效治疗术; 惩击
加入第二个法术,由于它没有任何条件选项,所以在第一组条件选项不成立时,则施放。
/施放 [help, combat] 快速治疗; [help, nocombat] 强效治疗术; 惩击
这个宏将在你(不是目标)处于战斗中时为友方目标施放快速治疗,如果你不在战斗中且目标为友方目标,则施放强效治疗术,如果这些条件都不成立(比如目标为敌对),则施放惩击。
/施放 [help] 强效治疗术; [harm, combat] 惩击; [harm, nocombat] 精神鞭笞
这个宏将对友方目标施放强效治疗术,或在战斗中对敌对目标施放惩击,或当你不处于战斗中时,对敌对目标施放精神鞭笞。
/施放 [stealth] 伏击; 背刺
这个宏在玩家处于潜行时施放伏击,否则的话就背刺。
/施放 [nostealth] 背刺; 伏击
这个宏和上面那个作用完全相同,只不过用了相反的条件选项。
/施放 [actionbar:1] 强效治疗术; [actionbar:2] 惩击
如果当前动作条为1号时施放强效治疗术,如果是2号则施放惩击,如果为其他动作条则不做任何事情。
/施放 [harm] 变形术
/stopmacro [noharm]
/p 正在把%t变羊!别去碰它!
这个宏将在目标为敌对目标时施放变形术,若目标不是敌对,则停止这个宏(例如变形术没有施放出来),当目标被变羊后则通知队友。注意,因为“/stopmacro”命令的存在,如果目标没有被变羊,队友将不会看到喊话(从而减少了不必要的垃圾信息)。
/施放 [pet] 召唤宠物; 复活宠物
这个宏将在你没有带着宠物时召唤一个出来,否则的话将尝试复活你的宠物。
/施放 [pet:owl] 俯冲; [pet:cat] 冲锋; [pet] 低吼
这个宏将在你带着枭类宠物的时候施放俯冲,带着猫类宠物时施放冲锋,如果是其他宠物则施放低吼。
/施放 [pet:虚空行者] 牺牲; [pet:媚魔] 魅惑
如果你带着虚空行者则施放牺牲,带着媚魔则施放魅惑。
/使用 [nomounted, outdoors] 黑色战驹缰绳
如果你在室外且没有骑着坐骑时召唤坐骑。
/施放 [target=pet, dead] 复活宠物; [nopet] 召唤宠物; 治疗宠物
若你的宠物死亡了则复活它,如果没有召唤出来则召唤宠物,或者治疗你的宠物。
----------------
姿态
----------------
姿态以同样的原理工作,当姿态编号没有给出时,则在玩家处于任一姿态都成立(注意,战士永远都处于某个姿态中)。如果给了编号,则检测该姿态是否被激活。
每个职业的特定姿态都有不同的编号,这是一个列表:
战士:1. 战斗 2. 防御 3. 狂暴
牧师:1. 暗影形态
德鲁伊:1. 熊 2. 水栖 3. 猫 4. 旅行 5. 枭兽/树
盗贼:1. 潜行
圣骑士的光环在宏条件选项系统中将不再被作为姿态处理。
请记住,如果你跳过了某个姿态(例如作为战士却没有做防御姿态的任务),你的姿态编号将会递减,比如狂暴姿态的编号会变成2号。
一些姿态宏的例子:
/施放 [nostance] 熊形态
如果没有在一个形态下,则变形到熊形态。
/施放 [stance:1] 压制; [stance:2] 破甲; [stance:3] 旋风斩
在战斗姿态下施放压制,防御姿态下施放破甲,狂暴姿态下施放旋风斩。
/施放 [stance:1] 低吼; [stance:3] 爪击
在熊形态施放低吼,在猫形态施放爪击。
/施放 [nostance:3] 猎豹形态
如果不在猎豹形态,则变形猎豹,但如果已经处于猎豹形态,也不会把你变回来。
Equipped条件选项
[equipped]条件选项也以同样的方式工作,但是更富有技巧。参数可以是一个物品槽(见下),一个物品分类,或一个物品子类。物品分类及子类,请参考这里:http://www.wowwiki.com/ItemType
此网页不属于NGA网站,NGA不保证其安全性
物品槽列表:
Two-Hand 双手
Bag 包
Shirt 衬衫
Chest 胸部
Back 背部
Feet 脚
Finger 手指
Hands 手
Head 头部
Held In Off-hand 副手物品
Legs 腿部
Neck 颈部
Ranged 远程
Off Hand 副手
Shoulder 肩部
Tabard 徽章
Thrown (ranged slot items like thrown daggers) 投掷(远程槽物品例如投掷匕首)
Trinket 饰品
Waist 腰部
One-Hand 单手
Main Hand 主手
Wrist 手腕
一些equipped例子:
/施放 [equipped:双手剑] 致死打击; 英勇打击
当你装备着双手剑时施放致死打击。
/施放 [equipped:双手剑/双手锤/双手斧/长柄武器] 致死打击
这里使用了分隔符“/”来设置一个“或”条件,这个宏将在你装备以上类型武器时施放致死打击。
/施放 [equipped:盾牌] 盾牌猛击
在你装备了盾牌的时候施放盾牌猛击。
/施放 [equipped:盾牌, equipped:匕首] 盾牌猛击
仅在你同时装备了盾牌和匕首时才施放盾牌猛击
/施放 [noequipped:盾牌, equipped:副手] 暴怒
在你没有装备盾牌且副手装备了武器的情况下施放暴怒,也就是说,在你双持的时候才被激活。
Button和Target目标选项
条件选项[button:<x>]运作起来类似于修改按键。一般来说,当你左键点击一个按钮,它就执行(宏)里面所有的动作,然而,如果你设置了button条件选项,你可以改变宏在特定按键上的表现。
默认按键是1,鼠标左键。注意,如果你通过按键绑定来触发一个宏,它会认为是通过鼠标左键点击触发。被编号的按键有:
1 或 左键
2 或 右键
3 或 中键
4 或 按键4
5 或 按键5
...以及其他一切在“安全声明头文件”中定义的按键。我不太确定这是什么意思,仅仅只是引用Slouken的表述。
lostcup: 官网UI论坛中有一篇Iriel(论坛MVP)写的SecureStateHeader Example Code,类似于一个模版,插件作者可以生成一个实例去修改默认设定。
/施放 [button:2, target=player] 快速治疗; [help] 快速治疗
这个宏将向友方目标施放快速治疗,或者如果你右键点击它,则向自己施放快速治疗
这里[target=unit]是一个特殊的条件选项,它并不检测条件是否成立,而是改变施法的目标以其他条件选项的目标。“unit”可以是任何有效的 unit类型,例如“player”,“target”,“targettarget”,“party1”,“party1target”,等等。想了解 更多的unit类型,可以去这里:http://www.wowwiki.com/UnitId
请注意,任何一个施法都有默认的target,那就是“target”,例如:
/施放 [help] 强效治疗术
就和下面的宏等同:
/施放 [target=target, help] 强效治疗术
除非你加入一个[target=unit]条件选项,默认则就是你的当前目标。
一些[target=unit]的例子:
/施放 [target=player] 快速治疗
总是向自己施放快速治疗,并且不会改变你的实际目标
/施放 [help] 快速治疗; [target=targettarget] 快速治疗
如果目标是友善的,则向他施放快速治疗,否则向目标的目标施放快速治疗。
/施放 [help, combat] 快速治疗; [help, nocombat] 强效治疗术; [target=targettarget, help, combat] 快速治疗; [target=player] 强效治疗术
这个宏可以 1) 如果你处于战斗中且目标友善时施放快速治疗,2) 如果你目标友善且没有在战斗中则施放强效治疗术,3) 如果你处于战斗中且你目标的目标为友善,则向他施放快速治疗,4) 如果前面的条件都不成立,则向自己施放强效治疗术。
如果你使用none作为unit,则它会像你没有选中目标一样工作,例如:
/施放 [target=none] 驱散魔法
这将施放驱散魔法且等待你点中一个目标,无论你当前是否选中了一个目标。
新的宏命令:/castsequence
----------------------
在WoW 2.0中出现了一个新的命令,/castsequence。它允许你在一次次点击某个宏时,将其中定义的一系列法术逐个施放,格式如下:
/castsequence [<条件选项>] reset=<#>/target/combat <法术1>, <法术2>, <法术3>
“啥?你在说啥?”
它设定了一个法术列表,当你第一次点击这个宏时,它施放列表中的第一个法术,第二次点击的时候,施放第二个法术,以此类推。 当它施放完最后一个时,又回到起始点开始循环。
“我还是不太明白耶。”
OK,假设你是一个法师,有时候你需要冰霜新星后立刻闪现开,你没法同时做到这些事情,现在你可以设定一个序列去做!
/castsequence 冰霜新星, 闪现
就这么简单,第一次你按这个宏,你施放冰霜新星,再按一次,闪现。
“那如果冰霜新星在冷却中怎么办?它会直接施放闪现么?还是不施放冰霜新星,等第二次按这个宏的时候,再施放闪现?”
都不是。如果法术无法施放(冷却,超出距离,法力不足等等情况下),序列就不会走到下一个法术,下一次你再点这个宏的时候,它会再度尝试施放冰霜新星。(抵抗,躲闪,招架等并不会算作无法施放,这些情况下法术/技能确实施放了,只不过没有命中。)
“如果我没有处于战斗中怎么办?我不想在非战斗情况下浪费一个冰霜新星。”
你可以把之前所有的宏条件选项应用于此(可惜的是,只能应用于整个序列,而不能为每个法术单独设定)。
“呃,其实刚才我只是随便说说,OK,那如果我在冰霜新星后不想闪现了怎么办?下一次我想施放冰霜新星时,它会不会还是停滞在施放闪现的设定上?”
这完全没问题,我们会用到重置这个设定。因为冰霜新星一般的冷却时间为24秒,我们可以设定序列在24秒内不被使用就重置它。
/castsequence reset=24 冰霜新星, 闪现
当你第一次点击这个宏时,它会施放冰霜新星,如果你决定不闪现了,等过了24秒后,它会重置到冰霜新星的状态,因为冰霜新星的冷却时间为24秒,那时候它就可以被重新使用了,真棒!
“好吧,这真的很厉害,不过我实际上是个术士啊。”
当然,作为一个术士,我相信你会一直重复上三种DoT,现在你可以为它们设置一个序列以节省按钮空间啦。
/castsequence 腐蚀, 献祭, 痛苦诅咒
就这么简单,你可以连续点击三次这个宏来上这三种DoT。
“但如果在我施放完这些前目标就死了呢?我又卡在这个序列里了,我可不想设什么定时器!”
那也没关系,我们可以用其他的条件选项。如果你设定“reset=target”,那序列将在你改变目标时就重置到起始位置。你也可以设置 “reset=combat”,每当你脱离战斗,这个序列就会被重置了。如果你使用“/”控制符(你还记得吧,之前提到过),你也可以将这些重置条件选项 组合起来!
/castsequence reset=combat/target 腐蚀, 献祭, 痛苦诅咒
就这全了,这下子每当你改变目标(比如原来的目标快死了,你选中的新的目标)或脱离了战斗(可能目标在你施放完所有DoT前就死了),它将会把整个序列重置,让你可以从头开始。
“OK,真棒,我想我现在弄明白了!给我点时间设置新的宏....搞定!”
好极了,我很高兴能帮上忙。
“那...来决斗一盘吧?”
呃,不了,我从不和术士决斗。
“切,胆小鬼。”
一些宏的例子:
通用宏:
---------------
/use [target=self] 厚虚空布绷带
无论当前目标是什么,这个宏只会对自己使用厚虚空布绷带。
战士宏
---------------
拦截/冲锋:拦截或者冲锋,或者切换到相应的姿态。
/施放 [nocombat, stance:1] 冲锋; [combat, nostance:3] 狂暴姿态; [nocombat, nostance:1] 战斗姿态; [combat, stance:3] 拦截
一般姿态宏:把<* Stance Ability>替换为任何你想要的技能
/施放 [stance:1] <Battle Stance Ability>; [stance:2] <Defense Stance Ability>; [stance:3] <Berserker Stance Ability>
压制:一个很简单的压制宏
/施放 [stance:1] 压制; 战斗姿态
法师宏
---------------
炎爆/火球:如果没有处于战斗则施放炎爆术(作为起手),否则就施放火球术
/施放 [nocombat] 炎爆术; 火球术
锁定变羊:总是将你锁定的目标变形
/施放 [target=focus] 变形术
牧师宏
---------------
向当前目标的目标施放强效治疗术,否则向当前目标施放
/施放 [target=targettarget, help] 强效治疗术; [help] 强效治疗术
猎人宏
---------------
根据是否在战斗中喂养或治疗宠物
/施放 [combat] 治疗宠物; [nocombat] 喂养宠物
/使用 [nocombat] <食物>
感谢
--------------------------
我要感谢下面这些人:
Cogwheel,帮我从UI论坛收集和提出建议。
Iriel,总是帮着在论坛里理清和比对信息。
Cairenn,努力帮助插件作者进入资料片的测试,为他们提供网站空间和百分之百的支持。
感谢所有插件作者和网站,是他们无私和努力的工作使得其他99%的玩家能够有更好的游戏体验。
最后也是最要感谢的是Slouken,一个插件社区所能够要求的最好的开发者,没有你,我们可就只能一直使用默认界面了。 -
转 -5个实用的网址缩短服务
2008-05-05
面对长长的网址你是否也有头疼的时候?还好,现在有了很多缩短网址的服务,长长的网址可以变短而易于记忆,今天为大家推荐5个主流的网址缩短服务。
1、url.ie
刚刚上线的新的免费服务,不需要注册,可直接使用,速度及可靠性有待考证。
样式
原网址:http://ybcz0519.blog.163.com/blog/static/98872220083290122773/
2、metamark
免费的服务,不需要注册,可直接使用,速度、可靠性都不错!可以为每一个缩短的网址设置单独的名称和密码保护。
样式
原网址:http://ybcz0519.blog.163.com/blog/static/98872220083290122773/
免费的服务,不需要注册,可直接使用,速度、可靠性都非常不错!
样式
原网址:http://ybcz0519.blog.163.com/blog/static/98872220083290122773/
小巧简单的在线服务,不需要注册,直接使用,一次缩短一个网址,速度很快!
样式
原网址:http://ybcz0519.blog.163.com/blog/static/98872220083290122773/
可以为每一个缩短的网址设置单独的ID号和密码保护。
样式
原网址:http://ybcz0519.blog.163.com/blog/static/98872220083290122773/
-
flash停顿多少秒后播放 (转载)
2008-03-18
stop();
//设置停顿时间,单位毫秒
var loadTime=setInterval(playMC,5000);
function playMC()
{
play();
clearInterval(loadTime);
}第一种方法:
_root.onEnterFrame=function(){
if(!m){
m=getTimer();
}
if((getTimer()-m)/1000>=10){
gotoAndPlay(x);
//停留10秒种,然后播放第x帧动画
delete onEnterFrame;
}
}
第二种方法:
要停留的前一帧:now = getTimer();
要停留的那一帧:
onEnterFrame = function()
{now2 = getTimer();
thetime = 3000;//要停留的毫秒数
betweenit = now2-now
if(betweenit < thetime)
{stop();}
else play();}
第三种方法:
在停的那一帧:
stop();
var tim=getTimer();
while(getTimer()-tim<5000){//停5秒
//stop();
}
play();
第四种方法:
在要停留的那一帧:
stop();
setInterval(play,3000);//暂停3秒
function play () {
play();
}
第五种方法:
你不会写as,我可以教你个简单的方法,就是在你要停的那帧写个stop(),然后放个影片剪辑在那帧,影片剪辑里都是空帧,要停多少时间就放多少空帧,然后在最后帧写个_root.play();即可.stop(); //指定停止當前的播放
pauseInerval=setInterval(pause,1000); //每1000毫秒(就是1秒)执行函数pause一次,也就是说时间可以按你的定要多久
function pause(){ //自定的函數名字
clearInterval(pauseInterval); //取消setInterval, 即取消每秒再繼續運行此函數
play(); //播放
}在一个mc里面新建一层,在需要暂停的地方(注意是加上帧上),暂停1秒后播放,pauseInerval=setInterval(pause,1000); 就是1000,如果暂停为4秒,那么就改成4000。
-
在线图片处理工具
2008-03-06
版权声明:转载的http://mylovehisa.blogbus.com/logs/16423701.html
说起编辑图片,可能大多数人都会马上想起强大的Photoshop。事实上,除了购买或下载盗版的PS之外,你还可以使用很多优秀在线图片编辑服务,这些网站大多数都是免费的。对于大部分的人来说,它们提供的功能已经足够强大了。在线服务相对离线服务有不少的优势。
一个让你可以在图片上添加一个新图层的服务。它所提供的图层包括很多趣味的元素:眼、耳、口、鼻、眼镜、坦克等等。当然,也可以添加一些字符。
整个编辑过程不需要刷新,各个元素都可以用鼠标拖动、用del键删除,这样节省了不少时间。只要稍加编辑,一个可爱的小朋友可以变成图中的大哥大了。

除了提供有自动修复、红眼修复等其它在线图片编辑服务没有的功能外,还有大量的专业级功能。喜欢使用高级功能的朋友不能错过Picnik了。
原名为Fauxto,是一个酷似Photoshop的在线图片处理服务。不但在功能上,在界面上也很相似。从截图里已经可以看出了。在多个在线图片处理服务里,Slashup是我最喜欢的一个,不但功能丰富,上传速度快,操作无需刷新。

和Pikipimp一样,这是一个给相片添加一些趣味图层的网站。整个操作平台由flash构建。各种图层也是可以用鼠标拖曳。?
FlauntR提供多种带有“R”的服务,包括stylR,TextR,picasR等等。基本上也是只用鼠标就可完成想要的效果。
每次操作后都需要刷新浏览器,带来了不少的不便,但其强大的功能弥补了这一缺陷。它的主要功能包括:调整、编辑、滤镜等

界面简洁得你不能相信。应有的功能它都有,操作不需刷新。非常值得推荐。
相对其它图片在线编辑服务,Picture2Life在页面设计上使用框架使编辑区和功能区隔开,方便进行编辑。和SnipShot一样,在进行操作之前都有效果预览图。编辑过程也无需刷新。十分值得推荐。

很有名的一个图片编辑服务,以前它只有一个凤凰计划,一个提供在线图片编辑的服务。目前来看它似乎要向多元化迈进,囊括所有多媒体类别。可能是因为要向多媒体迈进,它目前只能通过邮件申请参加内测。
如果你觉得其它的在线图片编辑服务都是英文你看得有点头疼,相信FotoFlexer是比较适合你的,它提供有简繁体中文的页面。其功能也是相当强大的。图中的嘴唇是我添加的。

Scrapblog是一个让你制作相片集合的在线服务,将多张图片集合成一张拼凑图。对于国外的相册服务来数,它的上传速度是超快的。和其它很多在线相册不同的是,它支持右键操作。
注意了,其名为72photos,并非72pines。XmgImg提供的编辑功能并不强大,但它是集相册与在线编辑功能于一体的。
功能比较简单,有广告,每部操作都需刷新。唯一的优势是界面相对比较简洁。
SnipShot和其它在线图片处理服务的不同之处在于,每一步操作之前都有操作效果预览,支持Ctrl+Z撤销,操作无需刷新。但它的免费版本提供的功能相对比较少。

确实地说,Pixenate提供的功能并不多,而且页面布局杂乱,广告较多。

功能相对来说比较少,但不一定每个人都需要强大的功能。也许很多人只需要对图片稍加编辑,这时你可以会选择phixr。
功能也不多,但全部的功能都支持快捷键操作。这是一大优势。
喜欢用Flickr相册?Preloadr是一刚能编辑你的flickr相册的服务, 编辑完成后会自动上传到你的flickr帐户。当然,你必须提供你的雅虎ID和密码。
-
Flash调用外部swf定位和大小
2008-02-27
flash调用外部swf定位和大小的ActionScript函数。
(1)用同一目录下swf文件,一般来说用loadMovie("mpg.swf","mpg");
可是那样不好控制swf的位置和大小把你的swf文件导入到一个空mc中去,然后通过调整这个空的mc来控制你的导入的swf文件的大小。
(2)文字要改变其大小可以用:
setproperty ("mcname",_xscale,xx);
setproperty("mcname",_yscale,yy);
//其中mcname为空mc的实例名,xx,yy为调整数值
(3)要改变调入后的swf的位置:
setproperty ("mcname",_x,xxx);
setproperty("mcname",_y,yyy);
//其中xxx,yyy是数值,即新的位置
功能说明:
loadMovieNum("url",level[, variables])
loadMovie("url",level/target[, variables])功能说明: 在播放原来加载的影片的同时将SWF或JPEG文件加载进来。 参数说明: url 要加载的 SWF 或 JPEG 文件的绝对或相对 URL,不能包含文件夹或磁盘驱动器说明。 level 把swf文件以层的形式载入到Movie里,若载入0层,则载入的swf文件将取代当前播放的Movie,。2层高于1层。 Target 可用路径拾取器取得并替换目标MC,载入的电影将拥有目标MC的位置、大小和旋转角度等属性。(个人认为用Target好些,在控制载入.swf位置时比较方便) variables 可选参数,指定发送变量所使用的 HTTP 方法(GET/POST),如果没有则省略此参数。 层次Level:Flash允许同时运行多个SWF文件,Flash一旦载入一个SWF文件,则占据了一个"层次",系统默认的 是_Flash0或_Level0,之后的Movie则按顺序放在level0---level16000里。第一个载入的SWF文件为_Flash0或 _Level0,第二个如果加载到第一层时的称为_Flash1或_Level1,依此类推。注意前提是前面载入的文件没有退出,否则冲掉第一个SWF文 件,第一个文件也从内存中退出。
注意:如果你将外部的Movie加载到Leve0层或者Level0里,那么,原始的Movie就会被暂时取代,要再用时还得重 新Load一次,也就是说,一个Level在一个时间里只能有一个Movie存在。在使用LoadMovie和UnLoadMovie时必须特别注意 Level之间的关系,否则,当你希望在一个时间里只播放一个Movie而Unload掉前一个Movie时,就会出现不必要的麻烦。
unloadMovieNum(level)
unloadMovie[Num](level/"target")
功能说明: 从 Flash Player 中删除已加载的影片。 参数说明: 同上 loadVariables ("url" ,level/"target" [, variables])
功能说明: 从外部文件中(例如文本文件,或由 CGI 脚本、Active Server Page (ASP)、PHP 或 Perl 脚本生成的文本)读取数据,并设置 Flash Player 级别或目标影片剪辑中变量的值。 参数说明: url 变量所处位置的绝对或相对 URL level 指定 Flash Player 中接收这些变量的级别的整数。 Target 指向接收所加载变量的影片剪辑的目标路径。 variables 可选参数,指定发送变量所使用的 HTTP 方法(GET/POST),如果没有则省略此参数。 gotoAndPlay(scene, frame)
功能说明: 转到指定场景中指定的帧并从该帧开始播放。如果未指定场景,则播放头将转到当前场景中的指定帧。 参数说明: scene 转到的场景的名称。 frame 转到的帧的编号或标签。 -
FLASH调用外部文件详解
2008-02-27
FLASH调用外部文件详解
Flash加载外部文件
Flash可以通过帧、按扭、影片剪辑来调用外部文件。调用的外部文件包括:外部文本文件、外部程序文件、外部*.swf文件、外部图片文件、外部音乐文件、外部脚本文件。
一.调用外部文本文件:(文本文件开头要以flash中的动态文本框的变量名开头,如
msg=".........."这样的形式,要和编辑的Flash文件放在同一目录下)
1.用工具箱中的文本工具,选择动态文本,给动态文本一个变量名,如:msg,在编辑区拖出一个文本框
2.制作两个按扭(一个调用,一个清除)拖放到场景中。
3.调用按扭上添加AS:
on(release){//松开鼠标后执行下面的代码;
loadVariables("msg.txt",msg);//调用和你编辑的Flash处于同一目录下的msg.txt文本文件到动态文本msg中;
System.useCodepage=true;//使外部文件的中文字符能够正确显示;
}
4.清除按扭上的AS:
on(release){//松开鼠标后清楚动态文本框中的内容;
msg="";
}
5.Ctrl+Enter测试.当然代码也可以写在帧上:(调用按扭的实例名是bt1,清除按扭的实例名是bt2)
在第一帧上加如下代码:
stop();
_root.bt1.onRelease=function(){
loadVariables("msg.txt",msg);
System.useCodepage=true;
}
_root.bt2.onRelease=function(){
_root.msg="";
}Ctrl+Enter测试.
调用的外部文本文件能够滚动:
1.用工具箱中的文本工具,选择动态文本,给动态文本一个变量名,如:msg,在编辑区拖出一个文本框
2.新建一层,制作两个按扭(一个调用,一个清除)拖放到此层中
3.新建一层,在动态文本框的右侧用矩形工具画一个竖条,高度和动态文本一样;再制作一个向上的方向"箭头"按F8转为按扭元件;复制一个"箭头"按扭,垂直镜象,使这两个按扭和竖条的两端对齐.
4.调用按扭上的AS:
on(release){//松开鼠标后执行下面的代码;
loadVariables("msg1.txt",msg);//调用msg1.txt文本文件到动态文本框msg中;
System.useCodepage=true;//使外部文件的中文字符能够正确显示;
}
清除按扭上的AS:
on(release){
_root.msg="";//清除动态文本框中的内容;
}
向上的按扭上的AS:
on(press){//在按扭的感应区上每按一次鼠标执行下面的代码;
_root.msg.scroll=_root.msg.scroll-1;//文本向下滚动一行;
}
向下的按扭上的AS:
on(press){//在按扭的感应区上每按一次鼠标执行下面的代码;
_root.msg.scroll=_root.msg.scroll+1;//文本向上滚动一行;
}
Ctrl+Enter测试.
当然代码也可以写在帧上:(调用按扭的实例名是bt1,清除按扭的实例名是bt2,向上按扭的实例名是:up,向下按扭上的实例名是down)
在第一帧上加如下代码:
_root.bt1.onRelease=function(){//松开鼠标后执行下面的代码;
loadVariables("msg1.txt",msg);//调用msg1.txt文本文件到动态文本框msg中;
System.useCodepage=true;//使外部文件的中文字符能够正确显示;
}
_root.bt2.onRelease=function(){//松开鼠标后执行
_root.msg="";//清除动态文本框中的内容;
}
_root.up.onPress=function(){//在向上按扭上每按一次鼠标执行下面的代码;
_root.msg.scroll=_root.msg.scroll-1;//文本向下滚动一行;
}
_root.down.onPress=function(){//在向下按扭上每按一次鼠标执行下面的代码;
_root.msg.scroll=_root.msg.scroll+1;//文本向上滚动一行;
}
Ctrl+Enter测试.
二.调用外部*.swf文件(加载到影片剪辑中):
外部*.swf文件要和编辑的Flash文件放在同一目录下
1.新建立一个空的影片剪辑mymc,把它放在场景中,实例名是:mymc.
2.新建一层,制作两个按扭(一个调用,一个清除)拖放到此层中
3.调用按扭上的AS:
on(release){//鼠标离开按扭后执行下面的代码;
loadMovie("flash8.swf","mymc");//加载外部的"flash8.swf"文件到"mymc"空影片剪辑中;
mymc._x=70;//加载影片的X轴坐标;
mymc._y=20;//加载影片的Y轴坐标;
mymc._xscale=70;//加载影片的宽度;
mymc._yscale=70;//加载影片的高度;
}
清除按扭上的AS:
on(release){//鼠标离开按扭后执行下面的代码
unloadMovie(mymc);//删除用loadMovie加载的*.swf文件;
}
Ctrl+Enter测试三.调用外部*.swf文件(加载到时间轴上):
外部*.swf文件要和编辑的Flash文件放在同一目录下
1.制作两个按扭(一个调用,一个清除)拖放到场景中
2.调用按扭上的AS:
on(release){//鼠标离开按扭后执行下面的代码
loadMovie("flash8.swf",1);//加载外部的"flash8.swf"文件到场景中,层深为1;
}
清除按扭上的AS:
on(release){//鼠标离开按扭后执行下面的代码
unloadMovie(1);//删除层深为1的用loadMovie所加载的"flash8.swf"文件
}
Ctrl+Enter测试。
当然二和三的代码都可以写在帧上。四.调用外部图片(加载到影片剪辑中)
外部图片必须和正在编辑的Flash文件放在同一目录下
1.制作两个按扭(一个调用,一个清除)拖放到场景中
2.制作一个空的影片剪辑,拖到场景中,实例名是:mymc;
3.时间轴上第一帧上的AS:
i=0;//定义一个变量i,并且赋初值为0;
调用按扭上的AS:
on(release){//鼠标离开按扭后执行下面的代码;
i++;
if(i>9){//因为外面这有9张图,当变量大于9的时候,让变量为1,这样能够使加载的图片是连续的,即,每点一次按扭,就换一张图,等到换 到第9张图,再点按扭,则循环到第一张图(j1.jpg到j9.jpg,因为没有j0.jpg,如果i=0,则会提示没有找到j0.jpg);
i=1;
}
loadMovie(("j"+i)+".jgp",mymc);//从j1.jpg开始加载图片到影片剪辑mymc中;
mymc._x=110;//以下设置加载图片的属性
mymc._y=35;
mymc._xscale=130;
mymc._yscale=130;
}
清除按扭上的AS:
on(release){
unloadMovie(mymc);//删除掉用loadMovie加载到影片剪辑的图片;
}
Ctrl+Enter测试。
当然AS可以写在帧上。五.调用外部声音文件(加载到场景中)
外部声音文件必须和正在编辑的Flash文件放在同一目录下
1.制作两个按扭(一个调用,一个清除)拖放到场景中
2.调用按扭上的AS:
on(release){//鼠标离开按扭后执行下面的代码;
mySound=new Sound();//建立一个新的声音对象mySound;
mySound.loadSound("zaihuni.mp3",true);//加载外部的*.mp3声音文件到mySound对象中,并且按流的方式播放(参数为false时,是以装载完后播放);
}
清除按扭上的AS:
on(release){
mySound.stop();//当按下清除按扭后,停止声音的播放
}
Ctrl+Enter测试。
Flash MX中,外部文件的调用可以通过帧、按钮和影片剪辑响应来调出。在制作课件的时候,为了增强课件的交互性,通常使用按钮响应来调出。
一:调用外部文本文件
1、文本类型为“动态文本”、字体、大小、颜色、变量名为了方便起见,统一命名,以便在后面的脚本程序中调用。
2、在按钮对象中添加脚本:
on (release) {
loadVariablesNum("xxx.txt", 0); //调用文件名为“xxx.txt”的外部文本文件,级别为0级
System.useCodepage = true; //显示中文字符的语句,使外部文本文件中的中文字符能正常显示。否则只能显示英文字符,中文字符为乱码
}
注意:
1、外部文本文件必须和主文件在同一目录下。
2、外部文本文件名必须为“xxx.txt”。
3、外部文本文件第一行开头必须为“xxx=”形式。
缺点:即使用8.0发布,动态文本的效果也不好。
二:调用外部程序文件
在按钮对象中添加脚本:
on (release) {
fscommand("exec", "xxx.exe"); //调用文件名为“xxx.exe”的外部程序文件.
}
注意:
1、外部程序文件必须和主文件在同一目录下。
2、外部程序文件名必须为“xxx.exe”。
3、如果要调用较大的程序文件,可以把主文件复制到程序文件的目录下,或者改变脚本设置,相对路径改为绝对路径。(不推荐)如:要调用Windows中的计算器程序,可设置脚本为:
on (release) {
fscommand("exec", "C:\\Windows\\calc.exe");
}
三:调用Flash影片
1、新建元件,名称为“空”,作用为“影片剪辑”。
2、拖动“空”影片剪辑元件到舞台上,创建一个实例。打开“属性”面板,设置实例名为“blank”
3、用鼠标右键单击舞台上的按钮三,从弹出的快捷菜单中选择“动作”选项,打开动作脚本编辑面板,键入以下脚本:
on (release) {
loadMovie("xxx.swf", "blank");
}
第二行:表示调用文件名为“xxx.swf”的外部Flash影片文件,用来代替主文件中的名为“blank”的影片剪辑。我们可以通过控制影片剪辑“blank”的属性来控制外部文件名为“xxx.swf”Flash影片文件的属性。
四:调用外部图片文件的方法与调用Flash影片的方法大致相同,不写了
五:调用外部音乐文件
脚本:
on (release) {
music = new Sound();
music.loadSound("xxx.mp3",true);
}
第二行:新建一个声音文件,实例名为“music”。同样,我们可以设置“music”的属性(如音量、平衡、混响等)来控制外部音乐文件“xxx.mp3”的属性。
第三行:从外部调用一个文件名为“xxx.mp3”的音乐文件,“true”表示从网上下载时音乐文件时只存在于内存中而不下载到硬盘(在线播放)。
六:调用外部脚本文件
一、操作方法:
脚本:
#include "chem.as"
其中chem.as的内容可以这样编辑:
chm­_array=[];
chem_array[0]=["aaa","bbb"];
chem_array[1]=["ccc","ddd"];
chem_array[2]=["eee","fff"];
这样可以方便准确的调用数组中的任一个元素,如chem_array[0][1]就调用了"bbb"。并且你可以随时给这个数组添加新元素而不用改动Flash源文件。























