本页面由 Flash 保存计划 从 Internet Archive 存档还原 · 快照 2006-11-11 · 原址 http://fl.flashempire.com/forums/thread/106.aspx ← Flash 保存计划

FlashLite User Group

Flash , FlashLite , ActionScript ...
欢迎光临 FlashLite User Group 登录 | 注册 | 帮助
搜索

学FlashLite从零开始(电量篇)

帖子发起人: gengrui   发起时间: 2 小时, 12 分 前   回复: 12
帖子排序: 上一主题 下一主题
  •  08-17-2006, 12:46 下午 106

    学FlashLite从零开始(电量篇)

    开发工具:Flash Professional8
    今天的内容是:怎么用ActionScript脚本编来获取手机当前的电量并且模仿手机上
    的电量显示方式显示在屏幕上。
    这次的内容有点复杂了 不过很有用了。
    现在介绍一下要用到的相关的方法和实现的方式
    方法:
    fscommand2("GetMaxBatteryLevel"); //获取手机的最大电量
    fscommand2("GetBatteryLevel");//获取手机的当前电量

    方式:
    手机总共的电量为5格,然后用当前电量除去最大电量得到当前电量所占的比例。
    当比例为0.8-1时显示电量全满了就是5格电
    当比例为0.6-0.8时显示4格电
    当比例为0.4-0.6时显示3格电
    当比例为0.2-0.4时显示2格电
    当比例为0.1-0.2时显示1格电
    当比例小于0.1时显示0格电了 可以充电了
    电的显示方式见下图:

    接下来我们开始动手了

    1.首先新建空白的FlashLite文档
    2.点击【插入】菜单【新建元件】建立一个电影剪辑(实例名为:gl)在这个元件里我
    们要实现电量的显示图了

    3.在这个电影剪辑里绘制电量显示的样子画如下的效果 总共为6帧了分别表示6个电量状态。


    4.然后我们在建一个电影剪辑(实例名为mv)了,然后从库面板中把我们上面建立的那个
    电量显示的电影剪辑拖到中央
    然后在第十帧插入一个关键帧这样我们就可以用10帧的时间刷新一次电量了,如下

    5.点击第一帧然后打开动作面板输入我们的代码:

    all = fscommand2("GetMaxBatteryLevel");//获得最大电量
    now = fscommand2("GetBatteryLevel");//获得当前电量

    res=now/all;//计算当前电量占的比例
    if (0.8<res && res<=1)
        {
     tellTarget ("/mv/gl") {gotoAndStop(1);
     
     }
     }else if(0.6<res && res<=0.8)
     {
      tellTarget ("/mv/gl") {gotoAndStop(2);}
      
     }else if(0.4<res && res<=0.6)
     {
      tellTarget ("/mv/gl") {gotoAndStop(3);}
      
     }else if(0.2<res && res<=0.4)
     {
      tellTarget ("/mv/gl") {gotoAndStop(4);}
     }else if(0.1<res && res<=0.2)
     {
      tellTarget ("/mv/gl") {gotoAndStop(5);}
     }
     else
     {
      tellTarget ("/mv/gl") {gotoAndStop(6);}
     }

    看懂这段代码应该不难了 代码里用了tellTarget ()gotoAndStop()方法了
    tellTarget ()这个方法有一个参数了 我们这里是"/mv/gl" 也就是元件的实例名了
    因为gl电影剪辑是包含在mv电影剪辑里的所以用/mv/gl这样的方式了.
    gotoAndStop()这个方法的参数是帧的位置值了,我们根据不同的res值通过tellTarget ()方法
    告诉/mv/gl元件跳到不同的帧位置并且停在那个位置了.并且每过10帧的时候就会重
    新取一次电值来刷新显示.

    6.这样电影剪辑元件的制作完成了 然后我们回到主场景了选中Content的第一帧并
    且从库面板中把(实例名为:mv)元件拖到
    屏幕的中央.

    7.这样我们的开发就完成了 因为代码中使用了fscommand2("GetBatteryLevel")方法了,
    这个代码不能在模拟器中测试了,请注意2个电影元件的实例名称了不要搞错哦.
    所以本例只能在真实的手机中测试

    本例源代码下载

    今天课就到这里了 下一个课是flashlite的手机信号篇 请继续关注 谢谢~

  •  08-17-2006, 4:45 下午 107 回复 106

    Re: 学FlashLite从零开始(电量篇)

    支持搂主发帖,原创的话最好注明一下,如果是转载应该给个原文链接。
    trace(setProperty("FLUG/Pawaca",_RP, 0));//false...
    FLUG China Team
  •  08-25-2006, 12:28 下午 145 回复 107

    Re: 学FlashLite从零开始(电量篇)

    说说我自己的看法,在这个帖子中,缺少了一个功能,就是在充电时候的功能

    在fscommand2中,有一条语句 status = fscommand2("GetPowerSource");

    当返回值为0的时候,说明手机在用电池电源,而返回值为1的时候,说明手机在用外部电源。

    当手机用外部电源的时候,是否可以理解为手机在充电?

    如果是的话,那么我们可以按照以上方法加入另一个功能了。

  •  08-25-2006, 12:54 下午 146 回复 145

    Re: 学FlashLite从零开始(电量篇)

    在信号上,跟这个的差不多

    只不过,用的是 fscommand2("GetSigalLevel")和fscommand2("GetMaxSigalLevel");

     

    不知道大家意见如何

     

  •  08-28-2006, 11:09 上午 151 回复 106

    Re: 学FlashLite从零开始(电量篇)

    楼上的说得不错了
  •  08-29-2006, 9:53 下午 154 回复 145

    Re: 学FlashLite从零开始(电量篇)

    请问要获取时间和日期的话,使用的方法是什么?

  •  08-30-2006, 9:47 上午 155 回复 154

    Re: 学FlashLite从零开始(电量篇)

    fscommand2("GetLocaleTime", "time");

  •  09-01-2006, 9:33 下午 183 回复 155

    Re: 学FlashLite从零开始(电量篇)

    如果我要能让flash显示手机中的时间和日期,是不是只要放置一个动态文本,变量名为time1,然后在帧上写

    Time1=fscommand2("GetLocaleTime", "time");

    就可以了?试了下似乎不行啊...

  •  09-12-2006, 7:19 下午 196 回复 106

    Re: 学FlashLite从零开始(电量篇)

    各位爱好FlashLIte的朋友

       我和我的很多朋友都一直致力于无线和互联网领域的创业机会,2004年我和我的伙伴们创立了一家SP,至今一直在持续发展.我们在移动和联通以WAP等2.5G业务为主.同时也包括短信,IVR和回铃服务等.我们是环球唱片的联通唯一指定合作伙伴,开发运营了联通第一款手机网游,也曾是联通WAP收入的前10名公司.

        今年,我们开始探索面向3G的新业务形式,并因此开始逐渐关注Flahs LIte上的应用.希望就此可与各位Flashlite高人多多交流.

     

        如果有兴趣相互认识,可在此回帖

       或请加我msn:duncier@hotmail.com

       或给我邮件:leif@cooloft.com

       盼回复!

  •  09-13-2006, 9:11 上午 198 回复 183

    Re: 学FlashLite从零开始(电量篇)

    回复bekway:

    呵呵,对不起,这两天在弄j2me的东西,所以没有即时看这个论坛。

    你的方法是可行的,但是如果你仔细阅读资料的话,会发现如下的问题:

    1、getlocaletime方法在flash的手机模拟器上可以使用,但是在pc的flash模拟器上无法显示。而且,现在支持这个东西的手机,也只有在日本有,而且还没有上市。所以,一般来说,我们真的要调用time,不会用动态文本,而是做从0到9十个数字图像,然后调用程序来动态显示。

    2、电池、信号等功能,在flash手机模拟器上无法调试。

  •  09-17-2006, 8:39 下午 205 回复 106

    Re: 学FlashLite从零开始(电量篇)

    偶的博客里有一些,都是自己原创的,呵呵,大家有兴趣可以互相交流

    http://www.newwz.com/zblog/

  •  09-17-2006, 8:44 下午 206 回复 198

    Re: 学FlashLite从零开始(电量篇)

    gengrui:

    回复bekway:

    呵呵,对不起,这两天在弄j2me的东西,所以没有即时看这个论坛。

    你的方法是可行的,但是如果你仔细阅读资料的话,会发现如下的问题:

    1、getlocaletime方法在flash的手机模拟器上可以使用,但是在pc的flash模拟器上无法显示。而且,现在支持这个东西的手机,也只有在日本有,而且还没有上市。所以,一般来说,我们真的要调用time,不会用动态文本,而是做从0到9十个数字图像,然后调用程序来动态显示。

    2、电池、信号等功能,在flash手机模拟器上无法调试。

     

    用动态文本是比较简单易行的作法,还可以利用嵌入字体

  •  2 小时, 12 分 前 258 回复 206

    Re: 学FlashLite从零开始(电量篇)

    znf_wz:
    gengrui:

    回复bekway:

    呵呵,对不起,这两天在弄j2me的东西,所以没有即时看这个论坛。

    你的方法是可行的,但是如果你仔细阅读资料的话,会发现如下的问题:

    1、getlocaletime方法在flash的手机模拟器上可以使用,但是在pc的flash模拟器上无法显示。而且,现在支持这个东西的手机,也只有在日本有,而且还没有上市。所以,一般来说,我们真的要调用time,不会用动态文本,而是做从0到9十个数字图像,然后调用程序来动态显示。

    2、电池、信号等功能,在flash手机模拟器上无法调试。

     

    用动态文本是比较简单易行的作法,还可以利用嵌入字体

     

    是这样的。用动态文本简单,却不可行。我们做的所有的能够在日本上线的ui里面,没有一个支持动态文本。所以,必须要把文字打散成图片。

    另外,在手机的执行效率上,画动态文本比画图片的效率慢很多,所以,在做ui的时候只能用图片。

可以使用RSS工具订阅该板块。
Powered by Community Server Iyond.com