Показать сообщение отдельно
Старый 07.10.2008, 00:59
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 12  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Да, замечания конечно есть))
Во-первых, запомните навсегда, что есть такое понятие как переменная, хранящая ссылку на объект. В данном примере this["image_mc" + i] - это клип. При его создании можно завести временную переменную, которая внутри цикла будет указывать на этот клип. Вот так:
Код:
for (var i=1; i<=6; i++) {
    var mc:MovieClip = this.createEmptyMovieClip("image_mc" + i, i);
    mc.loadMovie("main_img/"+i+".jpg");
    mc._y = 180;
    mc._x = 12 + i*107;
    mc.onRollOver = clipOver;
}
При этом процессор не должен будет каждый раз разыскивать ваш клип по хитрому адресу, как сейчас, а читабельность кода изрядно улучшится.
Во-вторых, и не так существенно, но можно ведь обойтись и одним циклом.
Например, так:
Код:
var cols:Number = 7 // нужное количество столбцов
var hspace:Number = 10 // горизонтальный просвет между картинками
var vspace:Number = 10 // вертикальный просвет между картинками
var img_width:Number = 180 // ширина картинок
var img_height:Number = 107 // высота картинок
////
for (var i=1; i<=6; i++) {
    var mc:MovieClip = this.createEmptyMovieClip("image_mc" + i, i);
    mc.loadMovie("main_img/"+i+".jpg");
    var horder:Number = (i+cols)%cols;
    horder = horder==0 ? cols-1 : horder-1
    var vorder:Number = Math.ceil(i/cols)-1;
    mc._x = horder*(img_width + hspace);
    mc._y = vorder*(img_height + vspace);
    mc.onRollOver = clipOver;
}
И забыл сказать, что обработчик кнопочных событий Вы сможете повесить только после загрузки изображения.
Как Вам уже правильно сказали, loadMovie нельзя использовать в таких случаях, когда с загружаемым изображением необходимо чтото сделать, т.е. практически никогда нельзя))))) Используют MovieClipLoader и все его замечательные события, позволяющие отслеживать процесс загрузки и ее окончание.
__________________
Reality.getBounds(this);


Последний раз редактировалось Wolsh; 07.10.2008 в 01:28.