PDA

Просмотр полной версии : код для увел. картинки в галерее


Kannahi
08.10.2006, 00:46
Вопрос вот в чем:
у меня есть галерея с мелкими картинками, мне надо чтобы при нажатии на картинку ее больший вариант возникал в определеном месте рабочего поля сайта или же в отдельном окне
сама разобраться не смогла, расчитываю на вашу помощь :rolleyes:

Хемуль
08.10.2006, 03:13
2 Kannahi:
Если имеется в библиотеке несколько мувиклипом с именами pic1, pic2, pic3, то вот вам пример кода с помощью которого thumbnail'ы на них вставляются на сцену и реализуется добавление на сцену увеличенного мувиклипа.

var picturesBaseName:String = "pic";
var pictureThumbSuffix:String = "_thumb";
var picturesNumber:Number = 3;
var picturesThumbsLeft:Number = 40;
var picturesThumbsTop:Number = 300;
var picturesThumbsInterval:Number = 20;
var picturesThumbsScale:Number = 50;
var selectedPicture:Number = 0;
var selectedPictureLeft:Number = 40;
var selectedPictureTop:Number = 40;

var newPictureXOffset:Number = 0;
for (var index = 0; index < 3; index++)
{
var pictureId:String = picturesBaseName + (index + 1);
var pictureThumbName:String = pictureId + pictureThumbSuffix;
var pictureClip:MovieClip = this.attachMovie(pictureId, pictureThumbName, this.getNextHighestDepth(), {_x:picturesThumbsLeft + newPictureXOffset, _y:picturesThumbsTop, _xscale:picturesThumbsScale, _yscale:picturesThumbsScale});
pictureClip.id = index + 1;
pictureClip.onRollOver = function()
{
this.setTransformRGBA(100, 110, 100, 0, -100, 0, 100, 0);
};
pictureClip.onRollOut = pictureClip.onReleaseOutside = function()
{
this.resetTransformRGBA();
};
pictureClip.onRelease = function()
{
var newPictureName:String = picturesBaseName + this.id;
if (selectedPicture != 0)
{
var selectedPictureName:String = picturesBaseName + selectedPicture;
this._parent[selectedPictureName].removeMovieClip();
}
this._parent.attachMovie(newPictureName, newPictureName, this._parent.getNextHighestDepth(), {_x:selectedPictureLeft, _y:selectedPictureTop});
selectedPicture = this.id;
};
newPictureXOffset += pictureClip._width + picturesThumbsInterval;
}

MovieClip.prototype.setTransformRGBA = function (ra, rb, ga, gb, ba, bb, aa, ab)
{
if (arguments.length < 8)
{
return false;
}
var x:Number = 0;
while (x < arguments.length)
{
if (isNaN(arguments[x++]))
{
return false;
}
}
if (ra <= 100 && ga <= 100 && ba <= 100 && aa <= 100 && ra >= -100 && ga >= -100 && ba >= -100 && aa >= -100 && rb <= 255 && gb <= 255 && bb <= 255 && ab <= 255 && rb >= -255 && gb >= -255 && bb >= -255 && ab >= -255)
{
var thisColor:Object = {ra:ra, rb:rb, ga:ga, gb:gb, ba:ba, bb:bb, aa:aa, ab:ab};
var col:Color = new Color(this);
col.setTransform(thisColor);
return true;
}
else
{
return false;
}
}

MovieClip.prototype.resetTransformRGBA = function()
{
var thisColor:Object = {ra:100, rb:0, ga:100, gb:0, ba:100, bb:0, aa:100, ab:255};
var col:Color = new Color(this);
col.setTransform(thisColor);
}

Исходник прикрепляю...

Kannahi
08.10.2006, 15:18
а где этот код вводить? :confused:
просто у меня каждый thumb как кнопка...и может можно как то на кнопку прописать код чтобы при нажатии на оную открывалась большая картинка?

Хемуль
08.10.2006, 20:20
2 Kannahi:
Ну, введите в кадре таймлайна _root'а... Я же пример прикрепил не для себя - там могли бы посмотреть...

Лучше забудьте о кнопках делайте всё мувиклипами. Кнопки не нужны. С ними потом только одна головная боль...

Открыть картинку при нажатии на кнопку? А откуда, извините, эта картинка будет загружаться? Извне? Из библиотеки? Из самой кнопки что ли? о_0 Сформулируйте конкретную задачу, пожалуйста. А вообще я вам привёл пример кода, который достаёт из библиотеки мувиклипы, присоединяет их на сцену в уменьшенном виде, назначает на эти уменьшенные картинки события... Ну и, естественно, выше приведены примеры обработчиков этих событий...

Kannahi
08.10.2006, 20:52
сделала так как вы сказали ( действительно с кнопками я что то замудрила)
большое спасибо ;)

Lexx555
14.11.2006, 14:03
с attachMovieClip понятно, а если не из библиотеки загружать, а из папки картинки и на них вешать обработку события(т.е. на этот клип с картинкой) при помощи loadMovie

Хемуль
14.11.2006, 16:45
с attachMovieClip понятно, а если не из библиотеки загружать, а из папки картинки и на них вешать обработку события(т.е. на этот клип с картинкой) при помощи loadMovie
Использовать обьект MovieClipLoader, загружать картинки на сцену, уменьшать их по окончанию загрузки до требуемого размера сабнейла, при нажатии на сабнейл запускать повторную загрузку этой же картинки в необходимые координаты на сцене и в полный размер.