Image + ProgressBar
Bardzo lubię technologie Adobe Flex gdyż można w niej pisać naprawdę szybko programy. Na przykład – potrzebuję indykatora postępu podczas ładowania obrazka. Mogę to zrobić w następujący sposób. Tworzę klasę pochodną od klasy odpowiedzialnej za wyświetlanie obrazka i definiuję metody przechwytujące zdarzenia postępu ładowania i wgrania całego obrazka. Łączę to z komponentem wyświetlania paska postępu i już. Wygląda to tak:
public class ImageWithProgressbar extends Image
{
public function ImageWithProgressbar()
{
super();
}
private var _progressBar:ProgressBar;
override protected function createChildren():void {
super.createChildren();
addEventListener(ProgressEvent.PROGRESS, progressHandler);
addEventListener(Event.COMPLETE, completeHandler);
_progressBar = new ProgressBar();
_progressBar.mode = ProgressBarMode.MANUAL;
_progressBar.percentWidth = 100;
_progressBar.setStyle("horizontalCenter", "0");
_progressBar.setStyle("verticalCenter", "0");
addChild(_progressBar);
_progressBar.visible = false;
}
private function progressHandler(e:ProgressEvent):void {
_progressBar.setProgress(e.bytesLoaded,e.bytesTotal);
_progressBar.visible = e.bytesLoaded < e.bytesTotal;
}
private function completeHandler(e:Event):void {
_progressBar.visible = false;
}
}
W efekcie otrzymuję klasę – która umożliwia wstawianie obrazków z paskiem postępu wyświetlanym podczas ładowania.
Categories: FLEX
Wspanialy komponent, sam bym napisala ale jak juz znalazlem :)
p.s.
ScaledCanvas tez super rzecz.
pochwale sie – napisalem ostatnio RountedBox do definiowania zaookraglen kazdego rogu na boxie :)
*napisal :D