|
|
|||||
[+4 06.05.14]
|
проблема с Tween и LoadClip
Ребят такая проблема Данные беруться из XML ( а точнее ширина , высота и путь откуда грузится картинка ). И так выглядет все вот как : контейнер 100*100 (клип) в нутри которого клип куда грузится картинка. в коде так : _root.contt - контейнер 100*100, _root.contt.d1 - куда грузим. Проблема такая при нажатии на мелкую картинку происходят события типа клип _root.contt приобретает ширину и высоту картинки большой например 800*600, после всего Transition периода начинается загрузка картинки в клип, и ПОЧЕМУ ТО после загрузки картинка становится не 800*600 как должна быть а скажем 2500*2000 ну короче растягивается жутко.... и не равна основному мувику _root.cont, видимо проблема с transition но что именно и как я так и не сумел понять.
П.с. _root.contt - точка привязки в центре. _root.contt.d1 - точка привязки top-left Вот код для наглядности ( код возможно ужасен, буду не против если есть другой метод создания эффекта Zoom а потом загрузки) _level0.main["g"+j].container_small.ID = j; _level0.main["g"+j].container_small.onRelease = function() { var link = this; _root.contt._visible = true; _root.contt._width = wei[this.ID]; _root.contt._height = hei[this.ID]; TransitionManager.start(_root.contt,{type:Zoom, direction:Transition.IN, duration:1, easing:Regular.easeOut}); _root.contt.allTransitionsInDone = function() { var v_obj:Object = new Object(); var my_v:MovieClipLoader = new MovieClipLoader(); v_obj.onLoadStart = function(target_mc:MovieClip) { } my_v.addListener(v_obj); my_v.loadClip(Vizual[link.ID],_level0.contt.d1); }; }; j - переменная цикла выбирающая нужную картинку из массива. массива - Vizual wei и hei соответсвенно массивы со значениями разрешения картинки например wei = 800 , hei = 640 Последний раз редактировалось in4core; 05.05.2009 в 21:49. |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Ну так Вы же сами увеличили контейнер в 8 раз. И картинка увеличилась бы в 8 раз, если бы не ограничения плеера на размер))) Параметры _xscale и _yscale контейнера посмотрите.
__________________
Reality.getBounds(this); |
|
|||||
[+4 06.05.14]
|
ну так подскажите пожалуйста как сделать чтобы ресайзился только один клип а другой внутри него нет.
Вот переписал под себя немного как хотел проблема теперь не увеличения стала а уменьшения и т.д. вот коl _level0.main["g"+j].container_small.onRelease = function() { var link = this; _root.contt._visible = true; var tween_handler:Tween = new Tween(_root.contt, "_width", Strong.easeIn, _root.contt._width, wei[link.ID], 1, true); var tween_handler:Tween = new Tween(_root.contt, "_height", Strong.easeIn, _root.contt._height, hei[link.ID], 1, true); tween_handler.onMotionFinished = function() { var v_obj:Object = new Object(); var my_v:MovieClipLoader = new MovieClipLoader(); v_obj.onLoadProgress = function(target_mc:MovieClip) { } my_v.addListener(v_obj); my_v.loadClip(Vizual[link.ID],_level0.contt.d1); }; }; Заранее спасибо П.с. была другая идея грузить картинку из клипа выше этого тоесть на _level0 любого чтобы ниче не ресайзилось. но тогда я просто не поймаю _x и _y клипа ведь картинка должна равнятся его координатам. Почему не поймаю ? потому что как уже написал выше точка привязки в центре клипа а Top-Left сделать нельзя тогда эффект твина будет не из центра ! Последний раз редактировалось in4core; 05.05.2009 в 23:54. |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Отказываюсь понимать Вашу логику - фактически Вы хотите, чтобы свойства внешнего клипа не распространялись на его внутренний клип. Причем не все, а избирательно только скейлы, а вот скажем координаты - те пусть остаются как есть. Вам как новичку объясню непонятный факт - нарисуете Вы контейнер 1000х1000 и загрузите туда картинку. Его масштаб остался 100% - так с чего бы картинке изменять свои размеры? Она тоже имеет масштаб 100%. Но здесь в своем коде Вы именно меняете масштаб контейнера, и все что внутри будет также массштабироваться. Какие пути исправления? Их два.
1) Не массштабировать контейнер. Я не знаю, зачем Вы это делаете - он видимо не пустой, Вы же делаете какой-то эффект, что-то увеличивается при этом. Так вот и увеличивайте тогда не контейнер, а это что-то ВНУТРИ контейнера. Тогда массштаб самого контейнера не изменится. 2) ОК, Вам очень нужно массштабировать именно контейнер - тогда после загрузки отмассштабируйте картинку обратно, сделав ее 100%. Добавлено через 11 минут Да, надо вообще Вам почитать в хелпе про _xscale и _yscale - в этом проекте Вам без них не обойтись. Если изберете второй путь, Вам придется также рассчитывать координаты с учетом этих двух свойств. Поэтому рекомендую всеже сделать ту графику, что всегда у Вас в контейнере, отдельным клипом и менять его размеры, тогда хоть с координатами картинки мороки не будет. Удачи и спокойствия))
__________________
Reality.getBounds(this); |
Часовой пояс GMT +4, время: 19:14. |
|
« Предыдущая тема | Следующая тема » |
|
|