收藏九域天地
九域天地友情链接
九域天地留言本
九域天地站点地图
      西安九域天地设计咨询网-VI/CI标志设计免费教程|平面广告设计教学文章|西安展示设计教程下载|室内装饰设计教程下载|多媒体动画制作在线教程文章|西安网站设计制作教程文章|招贴海报论坛教程|西安软件包装设计教程文章|西安展厅效果图设计教程|西安服装设计教程文章|西安公司标志设计|中国西安设计
   
西安九域天地设计咨询网-VI/CI标志设计免费教程|平面广告设计教学文章|西安展示设计教程下载|室内装饰设计教程下载|多媒体动画制作在线教程文章|西安网站设计制作教程文章|招贴海报论坛教程|西安软件包装设计教程文章|西安展厅效果图设计教程|西安服装设计教程文章|西安公司标志设计|中国西安设计
    当前位置:首页->设计相关->教程文章->多媒体设计文章    
   
 
西安九域天地设计咨询网-VI/CI标志设计免费教程|平面广告设计教学文章|西安展示设计教程下载|室内装饰设计教程下载|多媒体动画制作在线教程文章|西安网站设计制作教程文章|招贴海报论坛教程|西安软件包装设计教程文章|西安展厅效果图设计教程|西安服装设计教程文章|西安公司标志设计|中国西安设计
九域天地设计新闻
九域天地动向
设计相关文章
 
 
 
 
 
 
标志VI设计教程
Flash MX 编程深层次应用-高级特效(3)

3.2 综合特效(1)


上面特效的代码比较深奥难懂,下面就讲两个相对简单一点的特效。第一个是麦克风的使用,这个特效由于没有相关帮助文档,所以要使用某些功能只能慢慢地尝试,这样让编程变得麻烦;第二个特效为血管特效,它是对画线函数的绝好应用,非常值得大家学习。

3.2.1 麦克风的控制
在Flash MX中已经可以支持麦克风了,但是不知何故,Macromedia没有公开这个功能的使用。在查找一些国外的文档资料之后,发现了一些与麦克风相关的函数及方法:

micname.attachAudio(Microphone.get())
创建一个动画片断来存储麦克风的一些参数与属性。这里的micname可以是任意名字,在后面的程序中并不会用到这个名字,它由系统自动控制。

? Microphone.get() 取得麦克风的对象。
? setUseEchoSuppression(n) 消除麦克风的回声,n等于0时表示不消除,1 表示消除。
? setRate(n) 设定采样率,n的取值可以是5,8,11,22,44分别代表对应的kHz。
? setSilenceLevel(n) 用途不明,n取值从0~100,默认值是10。
? setGain(n) 麦克风的增益。取值从0~100。这个值越大,对声音的敏感度就越大,一点小小的声音可以放出很大的音量值。当这个值被设置之后,只要不退出程序,再次使用麦克风时,它就仍然使用上次的值,除非又重新对这个值进行了设置。它的默认值是50。
? activityLevel() 返回麦克风音量,取值从–1~100 ,本项内容属于只读,不能设置。
? Microphone.names 用来支持麦克风录音的设备名。
目前来说可以查到的关于麦克风的资料就是这些,现在来看一个具体实例的代码:

_root.createEmptyMovieClip("mic", 1);

_root.mic.attachAudio(Microphone.get());

_root.myMic = Microphone.get();

_root.myMic.setUseEchoSuppression(1);

_root.myMic.setGain(100)

//设置采样频率

_root.myMic.setRate(44);

this.onEnterFrame = function() {

//返回麦克风的音量从–1至100

level = _root.myMic.activityLevel;

//控制大小变化的速度

osci += ((level)+1)/1;

if (osci>360) {

osci = 0;

}

//控制周围的多边形与中心的那个之间的距离

ml = (0-level)/6;

radius = Math.sin(osci*Math.PI/180)*(ml+100);

rotation += (level)/2+1;

this.clear();

//多边形的边数

angle = 8;

for (j=0; j<angle; j++) {

xradius = Math.cos((j*360/angle)*Math.PI/180)*ml*(radius/angle);

yradius = Math.sin((j*360/angle)*Math.PI/180)*ml*(radius/angle);

this.lineStyle(level/3, "0xffffff");

x = Math.cos((arcAngle+rotation)*Math.PI/180)*radius;

y = Math.sin((arcAngle+rotation)*Math.PI/180)*radius;

this.moveTo(x+250+(xradius), y+200+(yradius));

//画中心的等边形的边

for (i=1; i<angle+1; i++) {

x = Math.cos(((i*(360/angle))+rotation)*Math.PI/180)*radius;

y = Math.sin(((i*(360/angle))+rotation)*Math.PI/180)*radius;

this.lineTo(x+250+(xradius), y+200+(yradius));

}

}

};

stop();

这段代码是根据麦克风的声音画一组正多边形。图3-8是音量在接近100时的效果,图3-9是音量在接近50的效果。

图3-8 图3-9

值得注意的是,在执行代码的过程中取了以下变量的输出值,内容如下:

Variable _level0.$version = "WIN 6,0,4,0"

Variable _level0.myMic = [object #1, class 'Microphone'] {

index:[getter/setter] 0,

activityLevel:[getter/setter] 0,

name:[getter/setter] "C-Media Wave Device",

silenceLevel:[getter/setter] 10,

silenceTimeOut:[getter/setter] 2000,

rate:[getter/setter] 44,

gain:[getter/setter] 50,

useEchoSuppression:[getter/setter] 1,

muted:[getter/setter] false

}

……

从这里显示出来的属性可以看出,这个麦克风对象还有几个可控制或者可读取的属性:

? index:这个属性明显是一个数值,与麦克风句柄有关。
? silenceTimeOut:这个属性与上面的silenceLevel属性一起控制麦克风。
? muted:静音控制。这个明显是一个布尔变量值。为true时麦克风就无声音了。
当然了,由于没有文档,所以对这些参数的意义只能是估计与猜测了,可能会有不正确的地方,暂时也不知用什么函数及方法来控制或者取得这几项参数值,如果大家能找到关于这几项内容的文档,也请来信告知。


 

 第 032 篇  首篇 上一篇 下一篇 返回 
 
 
 
 
  西安九域天地设计咨询网-平面广告设计、VI/CI设计、 室内装饰设计、多媒体动画制作、网站设计制作、招贴海报设计、软件包装设计、展厅效果图设计、公司标志设计 中国西安设计  
九域天地自助链接   九域天地友情链接   九域天地创作团队   九域天地人才招聘   九域天地联系方式   九域天地在线咨询
西安九域天地设计咨询网-VI/CI标志设计免费教程|平面广告设计教学文章|西安展示设计教程下载|室内装饰设计教程下载|多媒体动画制作在线教程文章|西安网站设计制作教程文章|招贴海报论坛教程|西安软件包装设计教程文章|西安展厅效果图设计教程|西安服装设计教程文章|西安公司标志设计|中国西安设计
 
九域天地联系电话   写信给九域天地
 
多媒体设计教程 网站设计教程 平面广告设计教程 环境装饰设计教程 界面创意设计教程