En este tutorial vamos a aprender como crear una clase que nos permita mostrar el progreso de carga del medio (ya sea el proyecto, imágenes, música, o swf externos), y representarlos con alguna barra de animación o texto.
Uno de sus usos comunes es la típica barra de cargando antes de que comience a reproducirse la animación.
Crear preloaders con clases en AS3, parte 1
Crear preloaders con clases en AS3, parte 2
Preload.as
Código :
package ar.com.lucasmoyano.preloads { import flash.display.MovieClip; import flash.events.ProgressEvent; import flash.events.Event; import flash.text.TextField; public class Preload extends MovieClip { private var content:MovieClip; private var nameTextField:String; private var textType:uint; private var scene; private var percentLoaded:Number; private var frame:uint; public function Preload(_scene:*, _content:MovieClip = null, _nameTextField:String = "", _textType:uint = 0):void { addEventListener(Event.ADDED_TO_STAGE, onAddedToStage); scene = _scene; content = _content; nameTextField = _nameTextField; textType = _textType; } private function onAddedToStage(e:Event):void { removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage); scene.addEventListener (ProgressEvent.PROGRESS, onLoading); addChild(content); } private function onLoading(e:ProgressEvent):void { percentLoaded = e.bytesLoaded / e.bytesTotal; frame = Math.floor(percentLoaded * content.totalFrames); if (content != null) { content.gotoAndStop(frame); } if (nameTextField != "") { var aux:String; switch (textType) { case 1: aux = int(percentLoaded * 100) + "%"; break; case 2: aux = int(percentLoaded * 10000) / 100 + "%"; break; case 3: aux = e.bytesLoaded + "/" + e.bytesTotal + " bytes"; break; case 4: aux = int(e.bytesLoaded / 1024) + "/" + int(e.bytesTotal/1024) + " kb"; break; case 5: aux = int(e.bytesLoaded / 1048576 * 100) / 100 + "/" + int(e.bytesTotal / 1048576 * 100) / 100 + " mb"; break; } content[nameTextField].text = aux; } if (e.bytesLoaded == e.bytesTotal) { scene.removeEventListener (ProgressEvent.PROGRESS, onLoading); removeChild(content); } } public function get Content():MovieClip { return content; } public function set Content(value:MovieClip):void { content = value; } public function get PercentLoaded():Number { return percentLoaded * 100; } public function set PercentLoaded(value:Number):void { percentLoaded = value / 100; } public function get NameTextField():String { return nameTextField; } public function set NameTextField(value:String):void { nameTextField = value; } public function get TextType():uint { return textType; } public function set TextType(value:uint):void { textType = value; } } }
Archivos del Tutorial:
http://www.megaupload.com/?d=Y30TSVHY
Por Freddie el 04 de Enero de 2011
Por lucasmoyano el 04 de Enero de 2011
Por gueivan el 13 de Diciembre de 2011