日期: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设计]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论