当前位置:七道奇文章资讯设计学堂Flash设计
日期:2009-04-04 00:33:00  来源:本站整理

<b>成立自己的ProgressBar组件</b>[Flash设计]

赞助商链接



  本文“<b>成立自己的ProgressBar组件</b>[Flash设计]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
本日在flash gamer群与一朋友谈论组件的制作,本日在硬盘里翻了翻,找到了几个用mx2004做的组件.

这个是纯as的ProgressBar
as文件
/**
* looding bar
*
* @作者 章精设(zjs35)
* @版本 v1
*/
import fc.graphics.draw2d.Rect;
import fc.graphics.draw2d.GDI;
import fc.graphics.*;
import fc.text.DrawString;
import fc.utils.Delegate;
import fc.events.EventDispatcher;
import mx.core.UIObject;
[Event("complete")]
[Event("progress")]
[TagName("ProgressBar")]
[IconFile("ProgressBar.png")]
class ProgressBar extends UIObject {
private var dispatchEvent:Function;
public var addEventListener:Function;
public var removeEventListener:Function;
private var _bar:GDI;
private var _str:DrawString;
private var _mc:MovieClip;
var _source:Object;
var _id:Number;
var bar:MovieClip;

public function ProgressBar() {
EventDispatcher.initialize(this);
}
function get source() {
return getSource();
}
[Inspectable(defaultvalue="")]
function set source(x) {
setSource(x);
}
function getSource(Void) {
return _source;
}
function setSource(val):Void {
if (typeof (val) == "string") {
val = eval(val);
}
if (val != null && val != undefined && val != "") {
_source = val;
//trace([_source, typeof (_source)]);
_id = setInterval(this, "setProgress", 80);
dispatchEvent({type:"progress", value:0, target:this});
}
}
function setProgress() {
if (!_visible) {
_visible = true;
}
var p1 = _source.getBytesLoaded();
var p2 = _source.getBytesTotal();
var p = fc.math.Num.point(p1/p2, 2)*100;
_mc._xscale = p;
var s = "加载 "+p+"%";
dispatchEvent({type:"progress", value:p, target:this});
_str.reset(s);
if (p>=100) {
dispatchEvent({type:"complete", value:_source, target:this});
clearInterval(_id);
complete();
}
}
function complete() {
_bar.target = _mc;
_bar.clear();
_bar.target = this;
_bar.clear();
_str.clear();
init();
}
public function init() {
super.init();
//width = bar._width;
//height = bar._height;
bar._visible = false;
}
function draw() {
//loading条的尺寸
var _w = __width;
var _h = __height;
//文本成立
_str = new DrawString();
_str.target = this;
_str.format(0x333333, "Tahoma", 11);
_str.draw("加载 0%");
_str.setXy(_w, (_h-_str.height)/2);
_bar = GDI.getInstance();
//后台
_bar.target = this;
_bar.fill(new SolidBrush(Color.fill, 100), new Rect(0, 0, _w, _h));
_bar.line(new Pen(1, 0x919999, 100), new Rect(0, 0, _w, _h));
_bar.line(new Pen(1, 0xd5dddd, 100), new Rect(2, 2, _w-2, _h-2));
//loading条
_mc = this.createEmptyMovieClip("back", this.getNextHighestDepth());
_bar.target = _mc;
_bar.fill(new SolidBrush(Color.line, 40), new Rect(2, 2, _w-2, _h-2));
_mc._xscale = 0;
//_visible = false;
}
function size() {
super.size();
}
}

图示

图片以下:


图片以下:


  以上是“<b>成立自己的ProgressBar组件</b>[Flash设计]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .