продолжение кода

Код:
// remove pause state
soundIsPlaying = true;
soundIsPaused = false;
soundPausePosition = 0;
soundChannel.addEventListener(Event.SOUND_COMPLETE, soundChannelSoundCompleteHandler);
// update images array
//if (hasImages)
updateImages(event.item.name, event.item.comment);
//if (!hasImages)
{
//trace(screen.getChildByName("loader"));
var loaderClip:DisplayObject = screen.getChildByName("loader");
if (loaderClip != null)
screen.removeChild(loaderClip);
}
// set comment
track.comment.text = event.item.comment;
currentTrack = event.item;
clearInterval(soundUpdateInterval);
soundUpdateInterval = setInterval(soundUpdateIntervalHandler, 100);
radioType = radioType;
}
function soundUpdateIntervalHandler():void
{
// update loading progress bar
track.cachedBar.width = (Math.round(soundObject.bytesLoaded) / Math.round(soundObject.bytesTotal)) * 273;
// update playing progress bar
track.position.x = track.time.x = (soundChannel.position / (soundLengthSecs * 1000)) * 273;
track.time.x -= 19;
var timeMinutes:String = String(Math.floor(soundChannel.position / 59500));
var timeSeconds:String = String(Math.round(soundChannel.position / 1000) % 60);
if (timeSeconds.length == 1)
timeSeconds = "0" + timeSeconds;
track.time.text = timeMinutes + ":" + timeSeconds;
// update buttons state
if (!soundIsPlaying)
{
playButton.visible = true;
stopButton.visible = false;
}
else
{
playButton.visible = false;
stopButton.visible = true;
}
// update images
//trace(images[imageCurrentIndex].time_secs + " > " + soundChannel.position / 1000);
//trace(imageCurrentIndex);
//if (hasImages)
if (imageCurrentIndex < images.length - 1)
if (images[imageCurrentIndex].time_secs < soundChannel.position / 1000)
{
var loaderClip:DisplayObject = screen.getChildByName("loader");
if (loaderClip != null)
screen.removeChild(loaderClip);
var loader:Loader = new Loader();
var urlRequest:URLRequest = new URLRequest(urlPrefix + "data/" + images[imageCurrentIndex].image);
loader.load(urlRequest);
loader.x = -345 / 2.0;
loader.y = -189 / 2.0;
loader.name = "loader";
screen.addChild(loader);
imageCurrentIndex++;
}
}
// prepare track bar
protected function prepareTrackBar():void
{
function trackClickHandler(event:MouseEvent):void
{
var newPosition:Number = (event.stageX - 357.6) / 273 * soundLengthSecs * 1000;
soundChannel.stop();
soundChannel = soundObject.play(newPosition, 0, soundTrans);
soundIsPlaying = true;
soundChannel.addEventListener(Event.SOUND_COMPLETE, soundChannelSoundCompleteHandler);
// handle images displaying
//if (hasImages)
{
imageCurrentIndex = 0;
for (var i:Number = 0; i < images.length; i++)
{
if (images[i].time_secs > soundChannel.position / 1000)
{
imageCurrentIndex = i - 1;
break;
}
}
}
}
track.addEventListener(MouseEvent.CLICK, trackClickHandler);
}
protected function prepareVolumeSlider():void
{
function bgBigMouseMoveHandler(event:MouseEvent):void
{
if (volumeDrag)
{
var newX:Number = event.stageX - volumeBar.x;
if (newX > 40.1 || newX < -0.1)
return;
volumeBar.track.x = newX;
volumeBar.percent.x = newX - 15;
var volPercent = volumeBar.track.x / 40;
volumeBar.percent.text = Math.round(volPercent * 100) + "%";
soundTrans.volume = volPercent;
if (soundIsPlaying)
soundChannel.soundTransform = soundTrans;
}
}
volumeBar.bgBig.addEventListener(MouseEvent.MOUSE_DOWN, function() { volumeDrag = true; } );
volumeBar.bgBig.addEventListener(MouseEvent.MOUSE_UP, function() { volumeDrag = false; } );
volumeBar.bgBig.addEventListener(MouseEvent.MOUSE_OUT, function() { volumeDrag = false; } );
volumeBar.bgBig.addEventListener(MouseEvent.MOUSE_MOVE, bgBigMouseMoveHandler);
// prepare values
var volPercent = volumeBar.track.x / 40;
volumeBar.percent.text = Math.round(volPercent * 100) + "%";
soundTrans.volume = volPercent;
//soundChannel.soundTransform = soundTrans;
}
// prepare all data in player
protected function prepareData():void
{
// load xml with all data
function urlLoaderCompleteHandler(event:Event):void
{
dataXML = new XML(event.target.data);
updateData();
}
var urlLoader:URLLoader = new URLLoader();
urlLoader.addEventListener(Event.COMPLETE, urlLoaderCompleteHandler);
urlLoader.load(new URLRequest(urlPrefix + "admin/xml.php"));
}
// update all data in player and gui
protected function updateData():void
{
// parse xml and add data into list
var children:XMLList = dataXML.children();
var dataProv:DataProvider = new DataProvider();
arrayRadio1 = arrayRadio2 = null;
arrayRadio1 = new Array();
arrayRadio2 = new Array();
for (var i:Number = 0; i < children.length(); i++)
{
var obj:Object = new Object();
obj.label = children[i].attribute("date") + " " + children[i].attribute("name") + " " + children[i].attribute("length_raw");
obj.name = children[i].attribute("name");
obj.comment = children[i].attribute("comment");
obj.date = children[i].attribute("date");
obj.time = children[i].attribute("time");
obj.radio = children[i].attribute("radio");
obj.audio = children[i].attribute("audio");
obj.length_raw = children[i].attribute("length_raw");
obj.length_secs = children[i].attribute("length_secs");
if (radioType == children[i].attribute("radio"))
dataProv.addItem(obj);
if (children[i].attribute("radio") == "Тарантайка дэйли")
arrayRadio1.push(obj);
else if (children[i].attribute("radio") == "Две жизни спустя")
arrayRadio2.push(obj);
}
compoList.list.dataProvider = dataProv;
//trace(arrayRadio1);
//trace(arrayRadio2);
// prevent play error at startup
if (firstRun)
{
listItemClickHandler(new ListEvent("itemClick", false, false, -1, -1, 0, arrayRadio1[0]));
if (soundIsPlaying)
{
soundPausePosition = soundChannel.position;
soundChannel.stop();
soundIsPlaying = false;
soundIsPaused = true;
}
firstRun = false;
}
}
protected function updateImages(compoName:String, compoComment:String)
{
var children:XMLList = dataXML.children();
var dataProv:DataProvider = new DataProvider();
imageCurrentIndex = 0;
var arrayLoaded:Boolean = false;
for (var i:Number = 0; i < children.length(); i++)
{
if (compoName != children[i].attribute("name") &&
compoComment != children[i].attribute("comment"))
continue;
images = new Array();
var imageNodes = children[i].children();
if (imageNodes.length() == 0)
{
hasImages = false;
break;
}
hasImages = true;
for (var j:Number = 0; j < imageNodes.length(); j++)
{
obj = new Object();
obj.id = imageNodes[j].attribute("id");
obj.compo_id = imageNodes[j].attribute("compo_id");
obj.time = imageNodes[j].attribute("time");
obj.image = imageNodes[j].attribute("image");
obj.time_secs = imageNodes[j].attribute("time_secs");
images.push(obj);
}
var obj = new Object();
obj.id = 999999;
obj.compo_id = imageNodes[0].attribute("compo_id");
obj.time = "9999:9999";
obj.image = "";
obj.time_secs = 999999;
images.push(obj);
arrayLoaded = true;
break;
}
if (arrayLoaded)
images.sortOn("time_secs", Array.NUMERIC);
}
function soundChannelSoundCompleteHandler(event:Event):void
{
soundIsPlaying = false;
soundChannel = soundObject.play(0, 0, soundTrans);
soundChannel.stop();
soundIsPaused = false;
soundPausePosition = 0;
}
}
}