Форум 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)
-   -   attachMoviClip + путь к вложеному загрузчику (http://www.flasher.ru/forum/showthread.php?t=99868)

lestat_2m 15.08.2007 03:29

attachMoviClip + путь к вложеному загрузчику
 
Есть задача:исходя из количества картинок в папке поместить на сцену соответствующее количество кнопок с превьюхами, по нажатияю каждой из которых изображение будет загружатся в полный размер.Так как количество картинок не известно информацию о них беру из xml файла( в котором пары данных картинка - путь к ней)
Допустим в файле у меня 10 элементов,соответсвенно я в цикле аттачу 10 экземпляров клипа в котором загрузчик, смещая каждый относительно предыдущего.
Для каждого вложенного лоадера нужно прописать путь
Код:

var x_c:Number = 0;
var y_c:Number = 0;
var mclip:String = "mc";
for (var i:Number = 1; i<10; i++) {
    mclip = mclip+i;
    this.attachMovie("mc", mclip, this.getNextHighestDepth(), {_x:x_c, _y:y_c});
    this[mclip].ldr.contentPath="pictures/shirts/1/1.jpg"
    x_coord=x_coord+51
    if(x_coord==204){
        y_coord=y_coord+50
        x_coord=0
    }
}

проблема в том что путь не прописывается. Есть подозрение что имя экземпляра лоадера в приаттаченых клипах неопределено, тогда подскажите как его задать?Или я неверно к нему обращаюсь?

Kikasso 15.08.2007 03:37

Есть подозрение, что getNextHighestDepth() показывает запредельную высоту, ведь вы используете компонент.
или использовать DepthManager или проставлять ручками, что несложно.

lestat_2m 15.08.2007 03:42

не совсем понял (вернее не понял совсем), если не трудно, можно поподробнее?

Kikasso 15.08.2007 03:56

Подробнее - в хелпе
Цитата:

if you place a version 2 component either on the Stage or in the Library, the getNextHighestDepth() method can sometimes return depth 1048676, which is outside the valid range. If you are using version 2 components, you should always use the version 2 components DepthManager class.
В переводе - задавайте глубину руками.
Правда, смотря что у вас this. Проверить, в этом ли дело, несложно:
Код:

trace(this.getNextHighestDepth());

lestat_2m 15.08.2007 04:19

действительно, именно так и обстоят дела. Спасибо за помощь

lestat_2m 15.08.2007 14:13

прописал глубины в ручную, но это не дало эффекта
Может есть ещё какие-то подводные камни?

iNils 15.08.2007 14:53

Рассмотрим этот кусок
Код:

this.attachMovie("mc", mclip, this.getNextHighestDepth(), {_x:x_c, _y:y_c});
this[mclip].ldr.contentPath="pictures/shirts/1/1.jpg"

В первой строчке создали мувилип this.mclip. Потом пытаетесь сохранить путь в this[mclip].ldr.contentPath. Вопросы:
1. Откуда взялся ldr? Он уже есть внутри клипа в библиотеке?
2. Почему пишите this[mclip], а не this.mclip?

Molecula 15.08.2007 14:59

Кстати у меня тоже не пашет.
Вчера делал, но не получилось - подумал, поздно моск не пашет.
Кладу на сцену Лоадер, имя его - ldr, конвертирую его в мувик box
Пишу:
Код:

ldr.contentPath='1.swf'
ldr2.contentPath='1.swf'
box.ldr.contentPath='1.swf'
_dupli = box.duplicateMovieClip("clip",1, {_x:200,_y:200});
_dupli.ldr.contentPath='1.swf'
trace(_dupli.ldr.contentPath)
trace(_dupli.ldr._x)
trace(_dupli.ldr.getNextHighestDepth())

Трейсы показывают:

Код:

1.swf
0
0

Везде подгружает, кроме продублированного.
Что не так?

lestat_2m 15.08.2007 15:21

Цитата:

Вопросы:
1. Откуда взялся ldr? Он уже есть внутри клипа в библиотеке?
2. Почему пишите this[mclip], а не this.mclip?
да, ldr находится внутри клипа из библиотеки

пишу this[mclip] потому что mclip - переменная

Molecula 15.08.2007 15:24

Наверное, всё таки прикол с глубиной.
А вообще, нафиг эти компоненты...

2 lestat_2m,
можно и так
Код:

atata = this.attachMovie("mc", mclip.....
atata._x=....
atata._alpha=....

Кстати, из твоего кода (самый топ), выходит что они все один на другой ложатся - может тут глюк?


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

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