Форум 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)
-   -   Нужна помощь с MovieClipLoader ом (http://www.flasher.ru/forum/showthread.php?t=113066)

rispekt 17.06.2008 21:56

Нужна помощь с MovieClipLoader ом
 
Загружаются несколько картинок.
Нужно узнать ширину каждой из них.
Как это сделать?
Я пишу так:
Код:

for (i = 0; i <= fst.length-1; i++) {
        var myClip = this.attachMovie ("level1", "container"+i, this.getNextHighestDepth());
        var myLoader = new MovieClipLoader();
        var myListener = new Object();
        myListener.onLoadInit = function () {
                trace(myClip._width);
        }
        myLoader.addListener(myListener);
        myLoader.loadClip(fst[i], myClip.level2);
}

В итоге выдает ширину первого клипа много раз. Как быть?

MrPoma 17.06.2008 22:15

Цитата:

Сообщение от rispekt
Как быть?

Переписать без цикла.

Код:

for (i = 0; i <= fst.length-1; i++) {
        var myClip = this.attachMovie ("level1", "container"+i, this.getNextHighestDepth());
        var myLoader = new MovieClipLoader();
        var myListener = new Object();
        myListener.onLoadInit = function (mc:MovieClip) {
                trace(mc._width);
        }
        myLoader.addListener(myListener);
        myLoader.loadClip(fst[i], myClip.level2);
}


rispekt 17.06.2008 22:17

Написал так
Код:

for (i = 0; i <= fst.length-1; i++) {
        var myClip = this.attachMovie ("level1", "container"+i, this.getNextHighestDepth());
        var myLoader = new MovieClipLoader();
        var myListener = new Object();
        myListener.onLoadInit = function (mc:MovieClip) {
                trace(mc._width);
                mc._x = Stage.width / 2 - mc._width/2;

        }
}

Ширину вычисляет нормально. Но теперь перестали работать функции, привязанные к событиям клипов с картинками. на пример:

Код:

for (i = 0; i <= fst.length-1; i++) {
        var myClip = this.attachMovie ("level1", "container"+i, this.getNextHighestDepth());
        var myLoader = new MovieClipLoader();
        var myListener = new Object();
        myListener.onLoadInit = function (mc:MovieClip) {
                trace(mc._width);
                mc._x = Stage.width / 2 - mc._width/2;

        }
        myLoader.addListener(myListener);
        myLoader.loadClip(fst[i], myClip.level2);


        myClip.onRollOver = function () {
        this.gotoAndPlay(2);
        }

}


MrPoma 17.06.2008 22:28

Как-то так:
Код:

var current:Number = 0;
var clipLoader:MovieClipLoader = new MovieClipLoader();

onLoadInit = function(mc:MovieClip){
        current ++;
       
        loadImage();
}
clipLoader.addListener(this);

function loadImage():Void{
        var url:String = 'img' + current + '.jpg';
        var container:MovieClip = _root.createEmptyMovieClip('img' + current, _root.getNextHighestDepth());
        clipLoader.loadClip(url, container);
}
loadImage();



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

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