![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Регистрация: Apr 2004
Адрес: Estonia, Tallinn
Сообщений: 3
|
Сражу скажу - я не профи, поэтому могут быть тупые ошибки.
Наваял я полоску для просмотра превьюшек (кликнул - в другом фрейме открылось) Вобщем, сабж. Разумеется, когда так смотриш - проблем нет. А вот когда с сервера - только после обновления. Кто подскажет что за несправедливость? Ещё не пойму почему при старте центр не правильно находит... |
|
|||||
|
Регистрация: Apr 2004
Адрес: Estonia, Tallinn
Сообщений: 3
|
Господа, ну неужели вы так и позволите человеку погибнуть. Неужто никто не подскажет???
|
|
|||||
|
не проверял, но возможно ошибочно условие прекращения ожидания загрузки по последней картинке( а вдруг предыдущие еще не пришли)
можно так попробовать onEnterFrame = function() {
var allget=true;
for (i=0; i<photos_array.length; i++)
{
var l = _root.main_movie.buttons["foto_" + photos_array[i]].getBytesLoaded();
var t = _root.main_movie.buttons["foto_" + photos_array[i]].getBytesTotal();
trace(l+" "+t);
if (l && t && l>=t) {
_root.main_movie.buttons["foto_" + photos_array[i]]._x = nnn_pos;
_root.main_movie.buttons["link_" + photos_array[i]]._x = nnn_pos;
nnn_pos = nnn_pos + _root.main_movie.buttons["foto_" + photos_array[i]]._width + space_pos;
}else allget=false;
if(allget)
{
_global.pos = 0 - (_root.main_movie.buttons._width / 2);
_root._visible = true;
_root.main_movie.play(3);
delete _root.onEnterFrame;
}
}
};
|
|
|||||
|
пардон, вот так ведь имелось ввиду
onEnterFrame = function() {
var allget=true;
for (i=0; i<photos_array.length; i++)
{
var l = _root.main_movie.buttons["foto_" + photos_array[i]].getBytesLoaded();
var t = _root.main_movie.buttons["foto_" + photos_array[i]].getBytesTotal();
trace(l+" "+t);
if (l && t && l>=t) {
_root.main_movie.buttons["foto_" + photos_array[i]]._x = nnn_pos;
_root.main_movie.buttons["link_" + photos_array[i]]._x = nnn_pos;
nnn_pos = nnn_pos + _root.main_movie.buttons["foto_" + photos_array[i]]._width + space_pos;
}else allget=false;
}
if(allget)
{
_global.pos = 0 - (_root.main_movie.buttons._width / 2);
_root._visible = true;
_root.main_movie.play(3);
delete _root.onEnterFrame;
}
};
|
|
|||||
|
Регистрация: Jan 2002
Сообщений: 1,323
|
//предусмотрено под размер фоток 80x60
_global.photos_array = new Array();
loadVariables("photos_list.php", "_root", "GET");
_global.space_pos = 50; // расстояние между фотками
_global.photo_center = 30; // высота_фотки/2 - центровка
_global.photo_border_color = "0xA8BB52"; //цвет бордюра фоток
onData = function()
{
if (files != null)
{
_global.photos_folder = folder;
_global.photos_array = files.split(",");
_root.main_movie.gotoAndPlay(2);
/**********onEnterFrame*************/
_root.onEnterFrame=function(){
var allget=true;
for (i=0; i<photos_array.length; i++)
if (_root.main_movie.buttons["foto_" + photos_array[i]]._width==0) allget=false;
if(allget)
{
var nnn_pos=0;
for(i=0; i<photos_array.length; i++){
_root.main_movie.buttons["foto_" + photos_array[i]]._x = nnn_pos;
_root.main_movie.buttons["link_" + photos_array[i]]._x = nnn_pos;
_root.main_movie.buttons["foto_" +photos_array[i]]._y = 0 - photo_center; // это перетаскиваем и второго фрейма main_movie
nnn_pos = nnn_pos + _root.main_movie.buttons["foto_" + photos_array[i]]._width + space_pos;
}
_global.pos = 0 - (_root.main_movie.buttons._width / 2);
_root._visible = true;
_root.main_movie.buttons.onEnterFrame = function() { // и это тоже переехало из main_movie
if(_root.main_movie.buttons._alpha<100) {_root.main_movie.buttons._alpha += 1;} //от последнего числа зависит скорость возрастания альфы при старте (мин 0.5)
else _root.main_movie.gotoAndPlay(3);
}
delete _root.onEnterFrame;
}
}
/**********onEnterFrame*************/
}
}
Цитата:
__________________
ВКЛЮЧИ МОЗГИ!!! Одноразовых граблей не бывает. На большинство из них уже кто-то наступал. (c) Dindin |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
я не тестил код. предупреждаю :)
то что вижу сразу: плохо 1: onData для рута срабатывает как минимум один раз по-любому. у тебя она срабатывает два раза. угадай почему :) плохо 2: нельзя называть файл, в котором всего лишь хранятся переменные расширением .php: в твоем случае это еще недограбли, но вообще, ты не сможешь определить getBytesTotal у файла, если у него исполняемое расширение, даже если хранятся в нём всего лишь текстовые переменные хехех... где-то я уже это (l && t && l>=t) видел :)) только с тех пор всё несколько извменилось. стоит обновить концепцию. в семёрке появилась одна замечательная особенность (даже если публиковать под шестёрку) - при загрузке файлов размер getBytesTotal ИНОГДА бывает равно -1 до того как началась загрузка. в шестёрке -1 возвращалось исключительно тогда, когда файл не найден. так что конструкция l && t в семёрке будет работать как бог на душу положит (потому как отрицательные числа тоже преобразуются в true) и еще одна особенность - начальный размер файла может быть не равен нулю. если вы не анлоадите клип перед тем как грузить в него что-то новое, или если вы создали контейнер для загрузки вручную (помним, что пустой клип созданный не-программно имеет размер 4 байта, а не ноль, как хочется думать.) итого: — либо строго анлоадить клип перед тем как вызывать лоад, — либо создавать контейнер для загрузки программно, и проверять (l>0 && t>0 && l>=t) — либо просто проверять (l>4 && t>4 && l>=t), где 4 - это размер пустого клипа созданного не-программно. вот такие мелочи создают ОХРЕНИТЕЛЬНЫЕ баги. сам видел. :)) |
|
|||||
|
Регистрация: Apr 2004
Адрес: Estonia, Tallinn
Сообщений: 3
|
Спасибо ОГРОМНОЕ всем кто откликнулся!
Всё отлично заработало! А по поводу PHP - вобщето на самом деле у меня он генерирует эти переменные... |
![]() |
Часовой пояс GMT +4, время: 17:04. |
|
|
« Предыдущая тема | Следующая тема » |
|
|