我在主文件中新建了影片剪辑 进度条实例名为“jdt”
动态文本框变量名为“bfb”
进度条和文本框在同一影片剪辑里
该影片剪辑实例名为“loading”
我第一桢放了一个按钮 按下会跳转到第二桢并且自动加载一个叫"aa.swf"
的文件
我在图层的第2桢加入了以下代码
loadMovieNum("aa.swf", 2);//将外部影片mc加载到级层2
loading.onEnterFrame = function() { //循环获得进度
a = _level2.getBytesLoaded();//获得已下载的字节数,注意我将外部影片加载到级层2
b = _level2.getBytesTotal(); //获得整个动画字节数
loading.bfb = int(a/b*100) + "%";//获得下载百分比
loading.jdt._xscale = (a/b*100);//获得进度条横向缩放值
if (a == b) { //如果下载完成,取消循环,开始播放下载的动画
delete loading.onEnterFrame;
tellTarget ("_level2") {
play();
}
}
};
stop();
刚看了下进度条组件ProgressBar,现在我有个问题不会解决,有时候我们加载的组件数据过大,就先加载一个进度条,比如我有个TitleList里面存放一个控件,这个控件绑定了我数据库大量数据,所以每次加载都比较慢,所以我想在我的titlelist加载完之前加载一个进度条,当title加载完之时,进度条消失!不知道改如何做写?希望高手指点一二!
我做了一个类似的,我取数据是通过RemotingObject从后台取
一个全局的标志,调用service之前立起来,得到结果后放下去。
由于我没有写往外放progress和complete事件,加之是异步的,
所以不知道进度状况,只好把进度条弄成 indeterminate="true" 的,
然后把它的visiable绑定到刚才的全局标志变量。
1. 如果是第一种,因为是异步的,所以你可以在send server时调用你的show progress 方法,在result handle里取消progress bar
2. 这一种的话没有办法解决,flex端的操作是单线程的,所以没有办法在它加载dataProverider时显示任何东西(如果数据多,这时候是假死状态)
开始调用service,就显示出滚动的进度条,得到结果后就隐去