Форум 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)
-   -   Как достать ширину загруженной картинки? (http://www.flasher.ru/forum/showthread.php?t=100333)

Wolsh 25.08.2007 19:45

Как? Ну это зависит от того, где Вы берете имена (URL) картинок для загрузки... Ну допустим, стандартное решение - у Вас в _root есть массив all_images с урлами, полученный сплитом строки или из хмл-файла. Тогда вот этот блок
Код:

mclListener.onLoadComplete = function()
        {
        delete image_mcl;// delete mclListener;
        }

замените на
Код:

mclListener.onLoadComplete = function()
        {
        num++
        new_holder = _root.createEmptyMovieClip("mc"+num, num);
        image_mcl.loadClip(_root.all_images[num], new_holder);
        }

(я опускаю здесь проверку на последняя/непоследняя и объявление num=0, а также изменения кода для загрузки первой картинки из списка (сейчас-то у Вас код только для одной картинки) - с этим Вы легко разберетесь)

venegy 25.08.2007 19:56

Вложений: 1
Я победил! :victory:
Немного преобразовал вид и с помощью рекурсивного вызова функции loadImage(i) стал грузить картинки по очереди. Красиво работает. Рабочий архив в аттаче.
Всем спасибо!

udaaff 25.08.2007 23:39

Твой код, только в упрощенном варианте
Код:

loader(0, 1);
//
function loader(x0:Number, i:Number):Void {
        //
        var container:MovieClip = this.createEmptyMovieClip("tester_mc"+i, this.getNextHighestDepth());
        container._x = x0;
        //
        var mclListener:Object = new Object();
        mclListener.onLoadInit = function(target_mc:MovieClip) {
                // --- рекурсия
                loader(container._x+target_mc._width, ++i);
                //
        };
        var image_mcl:MovieClipLoader = new MovieClipLoader();
        image_mcl.addListener(mclListener);
        image_mcl.loadClip("image_"+i+".jpg", "tester_mc"+i);
}

:victory:

dreaman 01.09.2007 02:36

Цитата:

Сообщение от venegy
Я победил! :victory:
Немного преобразовал вид и с помощью рекурсивного вызова функции loadImage(i) стал грузить картинки по очереди. Красиво работает. Рабочий архив в аттаче.
Всем спасибо!

господа! вопрос такой: а как сделать скроллинг (вертикальный) для данной конструкции "слушателей"? всю голову изломал...

udaaff 01.09.2007 10:12

Уточните свой вопрос.

dreaman 01.09.2007 15:27

Цитата:

Сообщение от udaaff
Уточните свой вопрос.

дело в том, что при помощи вышеупомянутых листенеров выводятся поочередно картинки (вертикально), но, т.к. картинок много, то, естесно, все не умещаются, поэтому нужен скроллинг. а вот это я как раз и не могу сделать, непонимаю как продвинуть все картинки, а не одну, как у меня сейчас получается, и то коряво...
вот код:

Код:

onClipEvent(load){
_root.urllinkfon._visible=0;
var offset=10; i=1; dy=0;
function loadImage(i){
        var listener:Object={};
        listener.onLoadInit = function(target_mc:MovieClip)
                {
                target_mc._x = 10;
                target_mc._y = offset+dy;
                offset += target_mc._height+10;
               
////////////////////////////////////////////////// ROLL OVER
_root.urllinkfon._visible=100;
var mainfon:XML = new XML();
System.useCodepage = true;
mainfon.ignoreWhite = true;
mainfon.load("txt.xml");
mainfon.onLoad = function (success){
functxml(this);}
function functxml(xml:XML) {
.... zagruzka contenta iz XML........}

///////////////////////////// vot tut  nujen scroll ///////////////////////
if(_root.mainfon._ymouse>200 && _root.mainfon._xmouse<100){ 
        _root.onEnterFrame=function(){                                   
        trace(_root.mainfon._ymouse);                                           
                dy--;                                                             
        }                                                                           
}                                                                                   
else {break;}                                                                   
//////////////////////////////////////////////////////////////////////////
}}
////////////////////////////////////////////////// END ROLL OVER


                i++;
                loadImage(i);
                }
        listener.onLoadComplete = function()
                {
                image_mcl.loadClip(img,mc);
                }
        var image_mcl:MovieClipLoader = new MovieClipLoader();
        image_mcl.addListener(listener);
       
                current_mc="mc_"+i;
                current_img="mypict_"+i+".jpg";
                this.createEmptyMovieClip(current_mc, i);
                image_mcl.loadClip(current_img, this["mc_"+i]);
                trace("i"+i);
}
loadImage(i);
}


Wolsh 01.09.2007 15:45

Вы чтоже, все мувики с картинками прямо в руте создаете? Создавайте в специальном контейнере, его и скроллируйте потом. Можно сверху маску положить нужного размера.

dreaman 01.09.2007 16:46

спасибо, попробую сделать так=)

udaaff 01.09.2007 16:48

Можно также использовать свойство мувика scrollRect или компонент ScrollPane.

Wolsh 01.09.2007 17:29

udaaff, не подскажешь как в скроллпейн мувики засовывать НЕ ИЗ библиотеки, а динамически созданные? Не могу найти, уже был такой вопрос. Или предлагаешь приаттачить пустой из библиотеки и в него грузить? Да и полосы прокрутки эти... Неэстетично и куча возни с перерисовкой. Проще свой скролл написать, имхо.


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

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