| 网站首页 | 模板 | 资料 | 源码 | 工具 | 开发 | 设计 | 安全 | 项目 | 网络 | 图片 | 系统 | 数据库 | 博客 | 会员中心 | 小说 | 
MYFTP 精品资料下载
网络学院
学习资料
源码模版
您现在的位置: 精品资料 >> 设计 >> 网页设计 >> flash >> 正文 用户登录 新用户注册
创建自己的ProgressBar组件          【字体:
创建自己的ProgressBar组件
作者:佚名    平面来源:不详    点击数:    更新时间:2008-6-23

今天在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(); 
  } 
} 图示

图片如下:
创建自己的ProgressBar组件(图一) 

图片如下:
创建自己的ProgressBar组件(图二)

(出处:网侠)

平面录入:chqnet    责任编辑:chqnet 
  • 上一个平面:

  • 下一个平面:
  • 最新热点 最新推荐 相关平面
    用Flash做一个自己的个性MP3…
    Flash5创建连波效果
    拖出自己的精彩—谈Flash MX…
    Flash 创建XML驱动的图像滚动
    FlashMX2004 建自定义类pack…
    使用Flash MX 2004创建组件
    flash创建舞台对象-输入文本
    创建个性化TextField
    flash创建复杂舞台对象
    用as创建的文本的方法
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)