创建自己的ProgressBar组件

2016-03-18 19:44 12 1 收藏

有了下面这个创建自己的ProgressBar组件教程,不懂创建自己的ProgressBar组件的也能装懂了,赶紧get起来装逼一下吧!

【 tulaoshi.com - 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); 
  } 
 &nb

[1] 200605/2110_2.html'>[2] 200605/2110_3.html'>[3] 200605/2110_4.html'>[4] 200605/2110_5.html'>[5] 200605/2110_2.html'>下一页

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/flash/)sp;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 

200605/2110.html'>上一页  200605/2110.html'>[1] [2] 200605/2110_3.html'>[3] 200605/2110_4.html'>[4] 200605/2110_5.html'>[5] 200605/2110_3.html'>下一页

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/flash/)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/flash/)= 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(); 
    //widt

200605/2110_2.html'>上一页  200605/2110.html'>[1] 200605/2110_2.html'>[2] [3] 200605/2110_4.html'>[4] 200605/2110_5.html'>[5] 200605/2110_4.html'>下一页

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/flash/)h = bar._width; 
    //height = bar._height; 
    bar._visible = false; 
  } 
  function draw() { 
    //loading条的尺寸 
    var _w = __width; 
    var _h = __height; 
    //文本创建 
    _str = new DrawString(); 
    _str.target = this;tulaoshi 
    _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.cre

200605/2110_3.html'>上一页  200605/2110.html'>[1] 200605/2110_2.html'>[2] 200605/2110_3.html'>[3] [4] 200605/2110_5.html'>[5] 200605/2110_5.html'>下一页

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/flash/)ateEmptyMovieClip("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(); 
  } 
} 图示

图片如下:
 

图片如下:
 

200605/2110_4.html'>上一页  200605/2110.html'>[1] 200605/2110_2.html'>[2] 200605/2110_3.html'>[3] 200605/2110_4.html'>[4] [5] 

来源:https://www.tulaoshi.com/n/20160318/1895632.html

延伸阅读
标签: PHP
               搞完了PHP4调用JavaBean,又想去试试调用COM,开始以为很难,自己用VB6写了一个Active Dll在PHP4中调用,马上成功,比调用javabean方便多了,下面讲一下我的步骤。      下载的版本是从http://www.mm4.de/。     &nbs...
标签: ASP
  首先我们看看EMAIL组件是干什么的,和怎么干的。我所说的EMAIL组件是用来发 送EMAIL的,不是接受和处理EMAIL的,这点大家一定要明白。而组件本身并不是 SMTP,所以需要一台SMTP服务器。ASP页面通过调用组件可以向SMTP服务器发送邮 件,只要符合SMTP就可以了。 这里我们要用的WINSOCK控件,因为WINSOCK是控件,所以不能用在没窗体的地...
标签: ASP
  概要 本分步指南介绍了如何创建组件对象模型 (COM) 组件供在 Active Server Pages (ASP) 中使用。  供 ASP 使用的 COM 组件  在 Visual Basic 中创建一个新的 ActiveX DLL 项目。  将项目命名为 VBASPProject,将类命名为...
标签: 压缩软件
  WinRAR是一个著名的文件压缩软件,它功能强大、操作方便,与WinZip等压缩软件相比有过之而无不及,现在更有取代WINZIP成为压缩软件老大的趋势。WINRAR除了基本压缩与解压缩功能外,还附加了许多操作简单、方便实用的功能,今天就让我们来用它打造属于自己的秘密工厂吧! 许多时候为了保护自己的重要资料或需要保密的文档,我们...
婚礼相册如何创建自己的婚礼相册?   婚礼相册如何创建自己的婚礼相册?婚礼相册能把自己美好的相册跟大家一起分享,当你刚开始使用婚礼相册的时候想必还不知道怎么创建自己的婚礼相册吧,今天小编就教大家如何婚礼相册如何创建自己的婚礼相册,希望用户们都能把最美好的时刻分享给大家。 1)首先打开婚礼相册,点击,进入界面你可...

经验教程

13

收藏

25
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部