Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   почему я перетираю видимый объект ? (http://www.flasher.ru/forum/showthread.php?t=116857)

darksranger 12.10.2008 19:31

почему я перетираю видимый объект ?
 
собственно вот код


Код:

private var photo:MovieClip
private var arrayPhoto:Array = new Array()
private var mc:MovieClip = new MovieClip()
....
constructor ...

addChild(mc)

..
где то начало цикла не суть
в цикле код

photo = new MovieClip
arrayPhoto(index - не суть) = photo

...
далее отображаю photo, а точнее добавляю его в список видимых обьектов

mc.addChild(photo)


собственно, все в цикле выполняется и вижу в итоге, только последний обьект Photo

( через trace вижу, что конейнера, все созданны, но не отображенны )

как сделать ?

читал про addChildAt, но насколько понял, он просто на нужную глубенну добавляет обьект, но если я не ошибаюсь, addChild добавляет так же, только сам увеличивает, с каждым обьектом глубенну

или я ошибаюсь ?

ramshteks 12.10.2008 19:49

пример кода, вроде по вашей темее
Код:

var mines:Array=new Array();
var tempMine:MovieClip;
for(var i:uint=0;i<10;i++){
  tempMine=new MovieClip();
  tempMine.x=Math.random()*100
  tempMine.y=Math.random()*100
  addChild(tempMine)
  mines.push(tempMine)
}
tempMine=null;

а вот это вот
Код:

mc["Photo"+i]
немного непонятно, это же мувиклип
и потом кто вас учил создавать обьекты без приписывания ()?

darksranger 12.10.2008 20:36

() код написан "на коленке" сильно не бейте ))))
UPD
переписал код ( на масив и т.д. )


Код:

                        mcAllPhoto.addChild(photo);
                        photo.addChild(loader)

собственно такой код, в крации

в loader, фотография полученная через load
mcAllPhoto контэйнер для всех фоток

суть, помещаем контайнер для фотографии, в общий контйнер и в помещенный контэйнер, помещаю фотграфию

tyapichu 13.10.2008 11:09

по твоему коду непонятно ничего.
объект photo у тебя один. в этот единственный объект в цикле создается много-много новых мувиклипов, затирая предыдущий мувиклип.
и в массив у тебя добавляется много-много ссылок на один единственный объект photo, в свою очередь хранящий последний мувиклип.

Код:

photoArray.push(new MovieClip())

darksranger 13.10.2008 14:32

вы не правы

1 каждый, последущий мувиКлип photo, создается просто выше, предидущего и не чего он не перетирает
2 trace выдает, что обьекты все созданны
3 перед использованием масива, у меня были именна обьектов разные и результат был тот же

tyapichu 13.10.2008 15:00

у тебя объект photo создается вне цикла. он один.
если бы ты сделал так:
Код:

var photoArr:Array = new Array();
for (var i:uint=0; i<10; i++){
    photoArr[i] = new Photo(); //тут создается новый экземпляр объекта Photo
                                        //процесс создания, лоадер новой фотки и все
                                        //остальное описывается в соответствующем месте

                                        //или просто photoArr[i] = new MovieClip(); кстати
}

у тебя в каждом элементе массива были бы новые объекты. а у тебя получается что-то типа:
Код:

var photo:MovieClip;
var photoArr:Array = new Array();
for (var i:uint=0; i<10; i++){
    photo = new MovieClip();
    photoArr[i] = photo; //почему не photoArr[i] = new MovieClip();??????
}

а что у тебя trace выводит я не знаю. ты же не написал, где он у тебя расположен и что выводит.

darksranger 13.10.2008 15:08

потому что мне нужны именнованные обьекты а не абстрактные

поповоду, 1 кода не понял, причем здесь new Photo()

зачем мне лишний класс ? в котором будет две строчки

я же писал, до использования одной переменной, я использовал разные именна....


UPD
убрал все мувики, решил просто добавить обьекты loader's, в список видимости


Код:

сверху груззим картинку по наступлению события COMPLETE переходим сюда

addChild(loader)

далее переходим в метод загрузки следущий фотграфии и т.д.

и опять показывается только ОДИН обьект


BlooDHounD 13.10.2008 15:21

tyapichu, учите матчасть, и заодно узнайте, что такое ссылки и как они работают.

darksranger 13.10.2008 15:25

Всем спасибо, вопрос снят

немного не дочитал мат часть
и допустил грубую ошибку
обьявив loader глобально, я каждый раз его перетирал, поэтому и видел, только последний обьект !

всем спасибо !

tyapichu 13.10.2008 15:39

Цитата:

Сообщение от BlooDHounD (Сообщение 770023)
tyapichu, учите матчасть, и заодно узнайте, что такое ссылки и как они работают.

как работают ссылки я знаю. мне надо учиться объяснять понятно и подробно с первого раза. просто я с подобной проблемой в процессе изучения AS3 сталкивался и смог с ней справиться. думал, что смогу помочь.


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

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