![]() |
|
||||||||||
|
|||||
|
Делаю значит фотогалерею и собсно хочу чтоб у каждой фотки был фон который сайзился под фотку.
Т.е. фотка не просто появляется а как бы выплывает из другой. Если ставить жосткие координаты без твина - естественно всё отлично работает. Но выплывания в этом случаи нет. Нет твина. windowmc._x = cx - 5; windowmc._y = cy - 5; windowmc._width = mc._width + 10; windowmc._height = mc._height + 10; tween = new mx.transitions.Tween(windowmc, "_width", mx.transitions.easing.Strong.easeInOut, windowmc._width, picturemc._width, 1, true); tween = new mx.transitions.Tween(windowmc, "_height", mx.transitions.easing.Strong.easeInOut, windowmc._height, picturemc._height, 1, true); tween = new mx.transitions.Tween(windowmc, "_x", mx.transitions.easing.Strong.easeInOut, windowmc._x, picturemc._x, 1, true); tween = new mx.transitions.Tween(windowmc, "_y", mx.transitions.easing.Strong.easeInOut, windowmc._y, picturemc._y, 1, true); Как этого избежать? Есть ещё нюанс: - пока мы не загрузим фотку, ни о каких координатах речи идти не может. Я уже все варианты перепробывал. И в отдельную функтию сайз ставил (работает так же само - запускает постоянно функцию) и вообще в отдельный мувиклип ставил... Вы умные - помогите а? Пол дня уже долбаюсь. Твин использую moveMc.as - сам твин рабочий 100%. раньше юзал lmc_tween.as - работало - но страшно этот твин глючит. Разлюбил я его )) даю функцию грузящую фотку: _global.loadImage = function(mc, prevNameImage, currentNameImage, nextNameImage) {
mc.createEmptyMovieClip("currentImage", 1);
mc.currentImage.loadMovie(currentNameImage, 1);
mc.onEnterFrame = function() {
var BytesLoaded:Number = mc.currentImage.getBytesLoaded();
var BytesTotal:Number = mc.currentImage.getBytesTotal();
if (BytesTotal != undefined) {
var cx = int(mc._width/2-mc._width+Stage.width/2);
var cy = int(mc._height/2-mc._height+Stage.height/2);
mc._x = cx;
mc._y = cy;
loadImgStatus = true;
//windowmc._x = cx - 5;
//windowmc._y = cy - 5;
//windowmc._width = mc._width + 10;
//windowmc._height = mc._height + 10;
//tween = new mx.transitions.Tween(windowmc, "_width", mx.transitions.easing.Strong.easeInOut, windowmc._width, picturemc._width, 1, true);
//tween = new mx.transitions.Tween(windowmc, "_height", mx.transitions.easing.Strong.easeInOut, windowmc._height, picturemc._height, 1, true);
//tween = new mx.transitions.Tween(windowmc, "_x", mx.transitions.easing.Strong.easeInOut, windowmc._x, picturemc._x, 1, true);
//tween = new mx.transitions.Tween(windowmc, "_y", mx.transitions.easing.Strong.easeInOut, windowmc._y, picturemc._y, 1, true);
} else {
loadImgStatus = false;
}
};
};
Последний раз редактировалось iNils; 26.10.2006 в 05:53. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
Слов нет как все плохо... Вы манипулируете с картинкой в процессе ее загрузки, что не правильно, она все равно пока не загрузится не будет отображаться, хотя BytesTotal ее уже известен и поэтому код внутри onEnterFrame бессмысленно работает. Эти манипуляции идут вечно, так как вы не убиваете onEnterFrame. В каждом кадре пытается переопределить Tween, что само по себе его использование бесполезно. Координаты каждой картинки будут одинаковы, так как вы распологаете их относительно размеров Stage.
Кроме того даете код и путь все мучаются и думают, что такое в нем windowmc. |
|
|||||
|
ага. Про загрузку не подумал. буду проверять на BytesLoaded == BytesTotal
Получается что нужно просто убить onEnterFrame ? delete onEnterFrame(); так ? что касается координат - то они кадждый раз разные тк. размеры картинок разные. |
|
|||||
|
ыыы... заработало
![]() спасибо. не работало пока не поставил проверку на ширину BytesTotal == BytesLoaded and BytesTotal != undefined and mc._width != 0 |
![]() |
![]() |
Часовой пояс GMT +4, время: 10:04. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|