Модераторы: SoWa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> распределение в галереи 
:(
    Опции темы
AntonioBanderaz
Дата 7.5.2005, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 18



В общем быстренько написал небольшую галерею, никак не могу допереть, как можно сделать распределение по х и у, и максимальной длине клипа... Размер картинки, при появлении рамки, один, после подгрузки другой и я не знаю зарание какой, он всегда разный!!! Ещё не могу разобраться с глюком при повторном нажатии....

Кому не впадлу - посоветуйте чаго-нидь...
вот основной код
Код

#include "lmc_tween.as"
var mcLoader_mcl:MovieClipLoader = new MovieClipLoader();
var mclListener:Object = new Object();
mclListener.onLoadStart = function() {
};
mclListener.onLoadInit = function(target_mc) {
    target_mc.tween("_width", target_mc._width/3, 2, 'easeOutElastic');
    target_mc.tween("_height", target_mc._height/3, 2, 'easeOutElastic');
    target_mc._parent.WD = target_mc._width/3;
    target_mc._parent.HD = target_mc._height/3;
};
mclListener.onLoadProgress = function(target_mc, loadedBytes, totalBytes) {
    var pctLoaded:Number = Math.round(loadedBytes/totalBytes*100);
    var preloader:MovieClip = target_mc._parent;
    preloader.PrBar._xscale = pctLoaded;
    if (loadedBytes == totalBytes) {
        _root.Load = true;
        preloader.onRollOver = function() {
            this.Image.tween("_width", 3*this.WD/2, 2, 'easeOutElastic');
            this.Image.tween("_height", 3*this.HD/2, 2, 'easeOutElastic');
        };
        preloader.onRollOut = preloader.onReleaseOutside=function () {
            this.tween("_x", this._x+this.DX, .5);
            this.tween("_y", this._y+this.DY, .5);
            this.DX = 0;
            this.DY = 0;
            this.Image.tween("_width", this.WD, 2, 'easeOutElastic');
            this.Image.tween("_height", this.HD, 2, 'easeOutElastic');
        };
        preloader.onRelease = function() {
            this.DX = this.WD/3;
            this.DY = this.HD/3;
            this.tween("_x", this._x-this.WD/3, .5);
            this.tween("_y", this._y-this.HD/3, .5);
            this.Image.tween("_width", 3*this.WD, 2, 'easeOutElastic');
            this.Image.tween("_height", 3*this.HD, 2, 'easeOutElastic');
        };
        preloader.PrBar._visible = false;
        target_mc._alpha = 0;
        target_mc.alphaTo(100, 2, 'easeElastic');
    }
};
mcLoader_mcl.addListener(mclListener);
function loadGallery(Images:Array, Space:Number, MaxWidth:Number):Void {
    for (var i = 0; i<Images.length; i++) {
                  GalleryItem._visible = false;
        var GalItem:MovieClip = GalleryItem.duplicateMovieClip('GalleryItem'+i, Images.length-i);
        GalItem._x = i*(GalItem._width+Space); // вот эта строчка тоже не всегда срабатывае, по trace(...) - ok!
        mcLoader_mcl.loadClip(Images[i], GalItem.Image);
    }
}
var Im:Array = ['http://.../10.jpg', 'http://.../7.jpg', 'http://.../12.jpg'];
loadGallery(Im, 3, 600);



это внутри GalleryItem

Код

onEnterFrame = function () {
    if (Image._width>80) {
        ramka._width = Image._width+20;
        ramka._height = Image._height+20;
    }
};




--------------------
ГЫ... 
PM MAIL ICQ   Вверх
AlDev
Дата 7.5.2005, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: 9
Всего: 50



Дай fla, pls.

что есть mc_tween.as?

Выложи всё в архивчике, pls.

Сходу кой-чего:

Вообще изображения лучше сделать одного размера или сделать им thumbnail-ы одного размера отдельные, а при нажатии на них показывать изображение.

про duplicateMovieClip - http://forum.vingrad.ru/index.php?showtopi...ndpost&p=385689
PM MAIL WWW ICQ YIM MSN   Вверх
AntonioBanderaz
Дата 7.5.2005, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 18



Я тут подправил немного... Но как-то через жопу...
Код

#include "lmc_tween.as"
var href:MovieClip = this;
var mcLoader_mcl:MovieClipLoader = new MovieClipLoader();
var mclListener:Object = new Object();
mclListener.onLoadStart = function() {
};
mclListener.onLoadInit = function(target_mc) {
    target_mc.tween("_width", target_mc._width/3, 2, 'easeOutElastic');
    target_mc.tween("_height", target_mc._height/3, 2, 'easeOutElastic');
    target_mc._parent.WD = target_mc._width/3;
    target_mc._parent.HD = target_mc._height/3;
};
mclListener.onLoadProgress = function(target_mc, loadedBytes, totalBytes) {
    var pctLoaded:Number = Math.round(loadedBytes/totalBytes*100);
    var preloader:MovieClip = target_mc._parent;
    preloader.PrBar._xscale = pctLoaded;
    if (loadedBytes == totalBytes) {
        preloader.onRollOver = function() {
            this.Image.tween("_width", 3*this.WD/2, 2, 'easeOutElastic');
            this.Image.tween("_height", 3*this.HD/2, 2, 'easeOutElastic');
        };
        preloader.onRollOut = preloader.onReleaseOutside=function () {
            /*this.tween("_x", this._x+this.DX, .5);
            this.tween("_y", this._y+this.DY, .5);
            this.DX = 0;
            this.DY = 0;*/
            this.Image.tween("_width", this.WD, 2, 'easeOutElastic');
            this.Image.tween("_height", this.HD, 2, 'easeOutElastic');
        };
        preloader.onRelease = function() {
            /*this.DX = this.WD/3;
            this.DY = this.HD/3;
            this.tween("_x", this._x-this.WD/3, .5);
            this.tween("_y", this._y-this.HD/3, .5); */
            this.Image.tween("_width", 3*this.WD, 2, 'easeOutElastic');
            this.Image.tween("_height", 3*this.HD, 2, 'easeOutElastic');
        };
        preloader.PrBar._visible = false;
        target_mc._alpha = 0;
        target_mc.alphaTo(100, 2, 'easeElastic');
    }
};
mcLoader_mcl.addListener(mclListener);
function loadGallery(Images:Array, Space:Number, MaxWidth:Number):Void {
    _global.Num = Images.length;
    _global.Spa = Space;
    for (var i = 0; i<Images.length; i++) {
        GalleryItem._visible = false;
        var GalItem:MovieClip = GalleryItem.duplicateMovieClip('GalleryItem'+i,Images.length - i);
        var GalInc:MovieClip = href['GalleryItem'+(i-1)];
        if (i == 0) {
            GalItem._x = 0;
            GalItem._y = 0;
        } else {
            GalItem._x = GalInc._x+GalInc._width+Space;
        }
        if ((GalItem._x+GalItem._width+Space)>600) {
            if (_global.Sum == undefined) {
                _global.Sum = i;
            }
            GalItem._x = 0;
            GalItem._y = GalInc._y+GalInc._height+Space;
        }
        mcLoader_mcl.loadClip(Images[i], GalItem.Image);
    }
}
onEnterFrame = function () {
    if (_global.Num != undefined) {
        for (i=0; i<_global.Num; i++) {
            if (i == 0) {
                // var GalInc:MovieClip = href['GalleryItem0'];
            } else {
                var GalInc:MovieClip = href['GalleryItem'+(i-1)];
                var GalItem:MovieClip = href['GalleryItem'+i];
                if (GalItem._x != 0 && GalItem._y == 0) {
                    GalItem._x = GalInc._x+GalInc._width+_global.Spa;
                } else if (GalItem._x == 0 && GalItem._y != 0) {
                    var GalInc:MovieClip = href['GalleryItem'+(i-_global.Sum)];
                    GalItem._y = GalInc._y+GalInc._height+_global.Spa;
                }
            }
        }
    }
};
var Im:Array = ['http://.../14.jpg', 'http://.../11.jpg', 'http://.../15.jpg', 'http://.../14.jpg', 'http://.../11.jpg', 'http://.../15.jpg'];
loadGallery(Im, 3, 600);


Всё равно эта зараза вылезает за поля....

Это lmc_tween.as расширение.
Проэкт

Это сообщение отредактировал(а) AntonioBanderaz - 7.5.2005, 14:17


--------------------
ГЫ... 
PM MAIL ICQ   Вверх
AntonioBanderaz
Дата 8.5.2005, 01:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 18



Добился нужного эффекта, выкладываю проект, подскажите что исправить, что оптимизировать.... Мне не нравится использование глобальных переменных, как этого можно избежать?
Да ещё хотелось бы услышать ваше мнение по поводу получившегося.... smile
Вот код, если кому лень качать проект...
Код

#include "lmc_tween.as"
var href:MovieClip = this;
var mcLoader_mcl:MovieClipLoader = new MovieClipLoader();
var mclListener:Object = new Object();
mclListener.onLoadStart = function() {
};
mclListener.onLoadInit = function(target_mc) {
    target_mc._width = target_mc._width/2;
    target_mc._height = target_mc._height/2;
    target_mc.tween("_width", target_mc._width/2, 2, 'easeOutElastic');
    target_mc.tween("_height", target_mc._height/2, 2, 'easeOutElastic');
    target_mc._parent.WD = target_mc._width/2;
    target_mc._parent.HD = target_mc._height/2;
};
mclListener.onLoadProgress = function(target_mc, loadedBytes, totalBytes) {
    var pctLoaded:Number = Math.round(loadedBytes/totalBytes*100);
    var preloader:MovieClip = target_mc._parent;
    preloader.PrBar._xscale = pctLoaded;
    if (loadedBytes == totalBytes) {
        preloader.onRollOver = function() {
            this.Image.tween("_width", 6*this.WD/2, 2, 'easeOutElastic');
            this.Image.tween("_height", 6*this.HD/2, 2, 'easeOutElastic');
        };
        preloader.onRollOut = preloader.onReleaseOutside=function () {
            this.Image.tween("_width", this.WD, 1, 'easeOutElastic');
            this.Image.tween("_height", this.HD, 1, 'easeOutElastic');
        };
        preloader.onRelease = function() {
            this.Image.tween("_width", 6*this.WD, 2, 'easeOutElastic');
            this.Image.tween("_height", 6*this.HD, 2, 'easeOutElastic');
        };
        preloader.PrBar._visible = false;
        target_mc._alpha = 0;
        target_mc.alphaTo(100, 2, 'easeElastic');
    }
};
mcLoader_mcl.addListener(mclListener);
function loadGallery(Images:Array, Space:Number, MaxWidth:Number):Void {
    _global.Num = Images.length;
    _global.Spa = Space;
    _global.MaxW = MaxWidth;
    for (var i = 0; i<Images.length; i++) {
        GalleryItem._visible = false;
        var GalItem:MovieClip = GalleryItem.duplicateMovieClip('GalleryItem'+i, Images.length-i);
        var GalInc:MovieClip = href['GalleryItem'+(i-1)];
        if (i == 0) {
            GalItem._x = 0;
            GalItem._y = 0;
        } else {
            GalItem._x = GalInc._x+GalInc._width+Space;
            GalItem._y = _global._y;
        }
        if ((GalItem._x+GalItem._width+Space)>MaxWidth) {
            if (_global.Sum == undefined) {
                _global.Sum = i;
            }
            GalItem._x = 0;
            GalItem._y = GalInc._y+GalInc._height+Space;
            _global._y = GalItem._y;
        }
        mcLoader_mcl.loadClip(Images[i], GalItem.Image);
    }
}
onEnterFrame = function () {
    if (_global.Num != undefined) {
        for (i=0; i<_global.Num; i++) {
            if (i != 0) {
                var GalInc:MovieClip = href['GalleryItem'+(i-1)];
                var GalItem:MovieClip = href['GalleryItem'+i];
                if (GalItem._x != 0) {
                    GalItem._y = GalInc._y;
                    GalItem._x = GalInc._x+GalInc._width+_global.Spa;
                    href._xscale = (_global.MaxW * href._xscale) / href._width;
                    href._yscale = (_global.MaxW * href._xscale) / href._width;
                    } else if (GalItem._x == 0 && GalItem._y != 0) {
                    GalItem._y = href['GalleryItem'+(i-_global.Sum)]._y+href['GalleryItem'+(i-_global.Sum)]._height+_global.Spa;
                    href._xscale = (_global.MaxW * href._xscale) / href._width;
                    href._yscale = (_global.MaxW * href._xscale) / href._width;
                }
            }
        }
    }
};
var Im:Array = ['http://www.trax.ru/striptiz/iren/14.jpg', 'http://www.trax.ru/striptiz/iren/11.jpg', 'http://www.trax.ru/striptiz/iren/15.jpg', 'http://www.trax.ru/striptiz/iren/14.jpg', 'http://www.trax.ru/striptiz/iren/11.jpg', 'http://www.trax.ru/striptiz/iren/15.jpg','http://www.trax.ru/striptiz/iren/14.jpg', 'http://www.trax.ru/striptiz/iren/11.jpg', 'http://www.trax.ru/striptiz/iren/6.jpg', 'http://www.trax.ru/striptiz/iren/10.jpg'];
loadGallery(Im, 5, 600);



На у вот проектик... Качать

PS. Если кто может объясните, как мона будет из того что я сделал, компонент создать, зарание спа =)


--------------------
ГЫ... 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Flash"
AlDev
SoWa
  • Если вы хотите предложить кому-либо работу, то пишите или в личку, или оставляйте сообщения в специально предназначеном для этого форуме "Объявления о найме специалистов"
  • Один вопрос - одна тема. Не надо переходов от одного вопроса к другому.
  • Если вы хотите показать какой-нибудь ваш мульт, причём показать, а не предоставить исходник, то вам сюда
  • Вопросы про программирование на ActionScript 1,2 (Flash 8 и более ранние версии) пишите в форуме ActionScript 1,2
  • Вопросы по разработке интернет-приложений на Flex и вопросы по MXML пишите в раздел Flex
  • Смотрим в будущее. ActionScript 3 обсуждается в форуме ActionScript 3
  • Новости из мира Flash.
  • New! [code=ascript][/code] - подсветка ActionScript + wikipedia help

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, AlDev, SoWa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Flash | Следующая тема »


 




[ Время генерации скрипта: 0.0629 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.