Ну хорошо. Только нужно бы уточнить, что loaded - это "доля" загруженного ролика в интервале 0.0-1.0, не количество байт.
Теперь наводящие вопросы.
- Что такое ns.time / durat? (какой у него физический смысл)?
- Почему у вас индикатор прогресса зависит от того, какая часть файла загружена? Он показывает проигрывание? Или он показывает процесс загрузки? Или он показывает температуру на Марсе?
- Какой физический смысл имеет ns.bytesTotal / ns.bytesLoaded? Вы offset ведь вычисляете по формуле (durat * (e.currentTraget.mouseX / 200) * (ns.bytesTotal/ns.bytesLoaded)). Два множителя я поинмаю, третий - нет.
Если вы ответите на вопросы (или хотя бы честно попытаетесь на них ответить), то вы поймете, почему при loaded=1 все работает нормально, а в других случаях - не работает.
Если что - да, я знаю ответ и правку. Но по коду вы или совсем не понимаете, что делает код (и пишете его методом тыка), либо плохо понимаете, что же он делает. Вот во втором случае вопросы и помогут понять, что же на самом деле вы написали в коде и что должно быть. Если не получится - жду ответов на вопросы, подскажу дальше. Ответы должны быть текстом, не кодом.
P.S. К проблеме оно отношения не имеет, но зачем присваивание durat = Metadata.duration в цикле? Это чтобы совсем надежно присвоилось?