![]() |
|
||||||||||
|
|||||
|
есть 6 MovieClip, в ниж надо загрузить 6 картинок разных, случайных габаритов
как лучше реализовать функцию загрузки с маштафизацией, чтобы картинки загружались и ложились в клипы пропорционально высота с шириной?
__________________
------------------------------- FLASH FLASH FLASH FLASH FLASH |
|
|||||
|
Модрон-ветеринар
|
Вот тут есть алгоритм:
http://noregret.org/tutor/resize/ На устаревшие методы загрузки не обращайте внимания, замените их на MovieClipLoader и его методы и все... Лично у меня это делает такая функция, которая вызывается из метода onLoadInit: resizeClip = function(mc:MovieClip, maxWidth:Number, maxHeight:Number, allowEnlarge:Boolean) { var ratio_x = maxWidth / mc._width; var ratio_y = maxHeight / mc._height; if (ratio_x <= ratio_y) { // выполняем, если нужно уменьшить, или увеличить + увеличение разрешено if (ratio_x < 1 || allowEnlarge) { // ширина равна максимальной а высота в соответствии с пропорцией mc._width = maxWidth; mc._yscale = mc._xscale; } //if } else { // выполняем, если нужно уменьшить, или увеличить+увеличение разрешено if (ratio_y < 1 || allowEnlarge) { // высота равна максимальной а ширина в соответствии с пропорцией mc._height = maxHeight; mc._xscale = mc._yscale; } } // центруем mc._x = -1 * Math.round(mc._width/2); mc._y = -1 * Math.round(mc._height/2); //сглаживаем mc.forceSmoothing = true ; //проявляем mc._visible = true ; }; Вот это у меня стоит, так как контейнер для загрузки перед нею я делаю невидимым, чтобы трепыхания не было при изменениях. Добавлено через 4 минуты allowEnlarge можете безболезненно убрать. Я его, например, не использую, но руки не доходят убрать ![]() Последний раз редактировалось mooncar; 11.09.2009 в 19:30. |
|
|||||
|
Спасибо... тут только маштабизация, не могли бы продемонстировать с загруской?
допустим есть 6 ссылок на картинки и 6 мувиков ssilka1 ssilka2... muvik1 muvik2...
__________________
------------------------------- FLASH FLASH FLASH FLASH FLASH |
|
|||||
|
Модрон-ветеринар
|
Честно говоря, писать не хочется, тут, на форуме я уже писал подробный код, который для вашей ситуации подойдет. Поищите по моим сообщениям.
|
|
|||||
|
Ладно
__________________
------------------------------- FLASH FLASH FLASH FLASH FLASH |
|
|||||
|
Модрон-ветеринар
|
Вот так попробуйте:
var mcLoader:MovieClipLoader = new MovieClipLoader(); var listener:Object = new Object(); mcLoader.addListener(listener); //после загрузки, ресайзим о центруем: listener.onLoadInit = function(target_mc:MovieClip) { resizeClip (target_mc, 126, 84); } //сама загрузка var picUrl:String ; this.createEmptyMovieClip('slides', this.GetNextHighestDepth()); for (i = 1; i <= 6; i++) { picUrl = 'ssylka' + i; slides.createEmptyMovieClip('image' + i, i); mcLoader.loadClip(picUrl, slides['image' + i]); } Последний раз редактировалось mooncar; 11.09.2009 в 19:59. |
|
|||||
|
Модрон-ветеринар
|
Таки наклепал примерчик для фотографий.
Для swf-ок тоже должно работать. Последний раз редактировалось mooncar; 11.09.2009 в 20:49. |
|
|||||
|
Спасибо Огромное! Хоть я уже и разобрался, ваш пример будет очень полезен
__________________
------------------------------- FLASH FLASH FLASH FLASH FLASH |
|
|||||
|
Регистрация: Mar 2009
Адрес: 173,0
Сообщений: 376
|
Спасибо, mooncar!
|
|
|||||
|
Возник следующий вопрос относительно работы MovieClipLoader'а.
var mcLoader:MovieClipLoader = new MovieClipLoader(); var loaderListener:Object = new Object; var mcRoot:MovieClip = this.createEmptyMovieClip("mcRoot", this.getNextHighestDepth()) var mcGIF:MovieClip = mcRoot.createEmptyMovieClip("mcGif", mcRoot.getNextHighestDepth()); var mcGifCopy:MovieClip; loaderListener.onLoadInit = function(mcTarget:MovieClip) { mcGifCopy = mcTarget.duplicateMovieClip("copy of gif", 100) trace(mcTarget) // _level0.mcRoot.mcGif trace(mcTarget.duplicateMovieClip("copy of gif", 100)) // undefined } mcLoader.addListener(loaderListener) mcLoader.loadClip("test.gif", mcGIF) function moveCopy():Void { mcGifCopy._y += 100; } Метод duplicateMovieClip клипа-контейнера с загруженной фотографией всегда возвращает undefined. С этим можно бороться или придётся подгружать клип повторно? |
![]() |
![]() |
Часовой пояс GMT +4, время: 11:33. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|