1) return; trans.volume = vol; soundChannel.soundTransform = trans; } private function setImage():void { var src:String = "student-mma-16-img-final-"; switch(color) { case RED: src += "loop-red.png"; break; case BLUE: src += "loop-blue.png"; break; case YELLOW: src += "loop-yellow.png";break; default: src += "loop-green.png"; } img = new Image(); img.source = src; img.width = 64; img.height = 78; img.alpha = 0.5; this.addChild(img); } private function setLabel():void { var label:Label = new Label(); label.text = title; label.x = 10; label.y = 24; label.styleName = "loopLabel"; label.truncateToFit = false; label.width = 46; label.setStyle("color", getColor(color)); this.addChild(label); } private function createSound(url:String):void { var req:URLRequest = new URLRequest(url); sound = new Sound(); createProgressBar(); sound.addEventListener(ProgressEvent.PROGRESS, updateProgress); sound.addEventListener(Event.COMPLETE, loadComplete); try { sound.load(req); state = STATE_LOADING; trans = new SoundTransform(); } catch(e:Error) { state = STATE_ERROR; } } public static function getColor(color:int):uint { switch(color) { case RED: return 0x7d0000; case BLUE: return 0x00527d; case YELLOW: return 0x7c7d00; default: return 0x007d11; } } private function createProgressBar():void { progressBar = new Shape(); this.rawChildren.addChild(progressBar); } private function updateProgress(e:ProgressEvent):void { var width:int = (e.bytesLoaded / e.bytesTotal) * 62; progressBar.graphics.clear(); progressBar.graphics.beginFill(0xFFFFFF); progressBar.graphics.drawRect(1, 65, width, 12); } private function loadComplete(e:Event):void { state = STATE_IDLE; progressBar.graphics.clear(); } ]]>