Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Загрузка JPG в библиотеку (http://www.flasher.ru/forum/showthread.php?t=104415)

Liox 25.11.2007 11:04

Загрузка JPG в библиотеку
 
Здраствуйте господа. ПРоблема такова.
Делаю фотогалерею. Где фотки показываются поштучно. Как зделать, так чтобы пара фоток предзагружалась в библиотеку, пока показывается первая фотка. Чтобы не ждать загрузку каждый раз при показе.

Подскажите метод загрузки изображений в библиотеку если такой есть.

И есть ещё проблемка, когда изменяешь размеры картинки, она становится настолько искажённой(явно выраженные квадратики). А хотелось бы качественного отображения... Хотя JPEG quality 100%

iNils 25.11.2007 14:15

1. Создать клип, спрятать клип, загрузить в него картинку.

2. Дело не в качестве картинки, а в способе интерполяции ее данных при изменнеи размеров. Если картинка лежит в библиотеке, то надо поставить для нее галочку Allow smoothing. Если она подгружается, то все несколько сложнее. Надо загрузить картинку во временной мувиклип, снять с клипа изображение в объект BitmapData с помощью метода draw, выгрузить картинку, и в клип предназначенный для показа приаттачить объект BitmapData, указав 4-ым параметром true.
Вот пример, который грузит картинку test.jpg и увеличивает ее в 1.5, слева обычная картинка, справа с примененим сглаживания.
Код:

import flash.display.BitmapData;
//// клип в котороый будем показывать загруженную картинку картинку
var mcImageA:MovieClip = this.createEmptyMovieClip ("mcImageB", 0);
//// клип в котороый будем показывать картинку с примением сглаживания
var mcImageB:MovieClip = this.createEmptyMovieClip ("mcImageB", 1);
//// сюда будем снимать скриншот
var __bmp:BitmapData = null;
//// загрузчик
var __mcl:MovieClipLoader = new MovieClipLoader ();
__mcl.addListener (this);
__mcl.loadClip ("test.jpg", mcImageA);
function onLoadInit (target_mc:MovieClip) {
        __bmp.dispose ();
        __bmp = new BitmapData (mcImageA._width, mcImageA._height, true, 0x0);
        __bmp.draw (mcImageA);
        mcImageB.attachBitmap (__bmp, 0, null, true);
        mcImageA._xscale = mcImageA._yscale = mcImageB._xscale = mcImageB._yscale = 150;
        mcImageB._x = mcImageA._width;
}


Liox 25.11.2007 20:51

Огромное спасибо. Даже несомневаюсь что сейчас всё заработает :)

Makxz 18.01.2008 21:44

Что делать, если картинка не прямоугольная (она заполняет не весь битмап)?

iNils 18.01.2008 21:55

Картинка всегда прямоугольная или речь идет о прозрачности?

Makxz 19.01.2008 16:24

Допустим у меня есть *.png. Пускай это будет круг (все вокруг окружности прозрачное).
Грузим его в мувиклип.
Делаем BitmapData (белый квадрат) и используем draw().
Получаем битмап = белый квадрат в котором наш круг.
Вопрос: как перегнать png в либрари, чтоб фон, который вне png-изображения был прозрачный?

Заранее спасибо!

iNils 19.01.2008 19:29

А вы моим скиптом уже пользовались или это пока теоретический вопрос?

zazaza 30.01.2008 18:45

все это прекрасно и работает. теперь такая проблема - если с этим обектом играть масками (скажем, появляется под клипом-маской из 50 обектов), или просто brightness у него меняется, все ЖУТКО тормозит. если просто loadMovie то все нормально, но без сглаживания. что с этим можно сделать?

zazaza 01.02.2008 17:12

кстати, есть еще одна проблема, bitmapData.draw НЕБУДЕТ работать с картинками подгружаемыми с другого хоста. с тем-же хостом все ок, но если база лежит на том-же хосте но например в субдомене, то все, каюк, не работает. Обясняется, на сколько мне известно, что ето "проблема копирайта, чтоб не тырили контент сделано спецом и т.п.". Как это обходится? Кто знает?

iNils 01.02.2008 17:15

Через пхп в своем домене.


Часовой пояс GMT +4, время: 13:26.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.