搜狐首页-新闻-体育-娱乐-财经-IT-汽车-房产-家居-女人-TV-ChinaRen-邮件-博客-BBS-搜狗 
Flash实用技巧教程之: 音乐时间显示篇

时间:2005年04月19日12:02  来源:太平洋电脑网 热点排行】 【推荐】 【打印】【关闭
我来说两句 我来说两句 即时新闻通知 进入新闻论坛 相关新闻:
 


  设计代码

  这部分是本文的重点,也是精华,希望大家花点心思研究一下。

  1.右键单击主场景的第1帧,在弹出菜单中选择“动作”命令,然后在打开的“动作”面板中键入如下代码。这段代码主要是创建一个声音对象和两个全局函数。

// 创建新的Sound对象
mysound = new Sound();
// 把在库中建立链接的声音附加到mySound对象中
mysound.attachSound("music");
// 隐藏动态文本“text1”,使得声音没有播放时“光谱分析器”的条件不满足而不能工作_root.text1._visible = 0;
// 使用_global对象来创建全局函数stsrt_fun
// stsrt_fun函数的作用是播放声音、显示时间
_global.start_fun = function() {
// 播放声音
mysound.start();
// 初始化两个动态文本的内容为“00”
    _root.text1.text = _root.text2.text = "00";
// 定义fun函数,用来显示时间
    function fun() {
// Math对象的floor方法返回小于等于指定参数的整数
// Sound对象中的position属性返回声音已播放的毫秒数
// 变量x纪录了声音已经播放的时间
        x = Math.floor(mysound.position/1000);
// 根据分秒的关系,显示文本的内容
// TextField对象的text属性可以设定文本内容
        if (x<10) {
            _root.text1.text = "00";
            _root.text2.text = "0" + x;
        } else if (x>=10 && x<60) {
            _root.text1.text = "00";
            _root.text2.text = x;
        } else if (x<600) {
            if (x%60<10) {
                _root.text1.text = "0" + Math.floor(x/60);
                _root.text2.text = "0" + x%60;
            } else if (x%60>=10) {
                _root.text1.text = "0" + Math.floor(x/60);
                _root.text2.text = x%60;
           }
        }
    }
// 每隔1000毫秒调用一次fun函数
    setInterval(fun, 1000);
// 循环播放声音
    mysound.onSoundComplete = start_fun;
}
// 定义全局函数stop_fun,作用是停止播放声音
_global.stop_fun = function() {
    mysound.stop();
}

  2.进入“主元件”的编辑场景。右键单击“主元件”场景中的第1帧,在弹出菜单中选择“动作”命令,在打开的“动作”面板中键入如下代码。这段代码的作用是“music 1”按钮被点击后,如果动态文本没有被隐藏,则跳转到第2帧。

stop();
music1.onRelease =function() {
if ( _root.text1._visible == 1 ) {
     gotoAndStop(2);
}
}

  在打开的“动作”面板中键入如下代码。

  右键单击场景中的第2帧,在“动作”面板中键入如下代码。该代码的作用是“music2”按钮被点击后,返回到到第1帧。

stop();
music2.onRelease = function() {
    gotoAndStop(1);
}

  3.进入“按钮”影片剪辑元件的编辑场景。右键单击场景中第1帧,在“动作”面板中键入如下代码。这段代码的作用是“bn1”按钮被点击后,显示动态文本,执行start_fun函数,然后跳转到第2帧。

stop();
bn1.onRelease = function() {
    _root.text1._visible = 1;
    _root.text2._visible = 1;
    start_fun();
    gotoAndStop(2);
}

  右键单击场景中的第2帧,在“动作”面板中键入如下代码。该代码的作用是点击“bn2”按钮后,先调用stop_fun函数。接着隐藏两个动态文本并让“mc”实例(即“主元件”)返回其场景的第1帧。最后“按钮”影片剪辑元件也返回到其场景的第1帧停止。

stop();
bn2.onRelease = function() {
    stop_fun();
    _root.text1._visible = 0;
    _root.text2._visible = 0;
    _root.mc.gotoAndStop(1);
    gotoAndStop(1);
}

  4.打开库,双击“光谱”元件。在其场景中选中“光柱二”元件,按F9键打开“动作”面板,键入如下代码。代码中随机数值的大小可以随意设置。但要注意“光柱二”和“光柱一”元件之间的距离。

// _alpha是影片剪辑的透明度属性
// _yscale属性的作用是使影片剪辑在垂直方向上进行缩放
// Math对象的random方法返回一个大于等于0而小于1的数字。“ramdom(90)”的用法已经不被建议了
onClipEvent (enterFrame) {
    _alpha = Math.random()*60 + 40;
    _yscale = Math.random()*90 + 10;
}

  选中场景中的“光柱一”元件,按F9键打开“动作”面板,键入如下代码。

// _y是影片剪辑的(Y)轴坐标属性
onClipEvent (enterFrame) {
    _y = -Math.random()*6 - 12;
}

  好了,整个效果到这里就设计完成了。测试一下,应该会让你自己吃惊不小的。在效果中,读者可以使用电子表中的显示字体,这样,效果看起来就更逼真些。

  
[上一页][1][2][3][4]


页面功能   【我来说两句】 【热点排行】 【推荐】 【字体:  】 【打印】  【关闭

 ■ 相关链接

 ■ 我来说两句
用  户:        匿名发出:
请各位遵纪守法并注意语言文明。
 
*经营许可证编号:京ICP00000008号
*《互联网电子公告服务管理规定》
*《全国人大常委会关于维护互联网安全的规定》
手机
包月自写5分钱/条

最新制作 想唱就唱
夏天的味道 哪一站



精品专题推荐:
谁说赚钱难告诉你秘诀
测IQ交朋友,非常速配
就让你笑火暴搞笑到底

短信订阅
焦点新闻魅力贴士伊甸指南魔鬼辞典



公社热图


·[组图]大陆第一美女模特
·[图]这就是人死后世界?
·女星中的九大混血妖姬









搜狐商城
 
·数码|iPod nano¥1799
·I T|1G 微盘特价¥399
·家电|飞利浦耳机特价
·家电|USB音箱5折
·家电|飞利浦耳机特价
更多...
-- 给编辑写信
Copyright © 2017 Sohu.com Inc. All Rights Reserved.搜狐公司 版权所有 全部新闻 全部博文