Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Куда делись дубликаты?! (http://www.flasher.ru/forum/showthread.php?t=54942)

Штрек 20.02.2004 04:46

Куда делись дубликаты?!
 
Вложений: 1
Вопрос важный для меня, поэтому прошу без расслабухи. :p
Из Хэлпа:
Мувиклипы, добавленные при помощи duplicateMovieClip могут быть удалены командой или методом removeMovieClip .
Так вот в исходнике /простейший/ никого ремова нет,
а дубликаты куда то пропадают.
Жду внятного ответа. ;)

kompadre 20.02.2004 07:56

эта у вас такие жуткие полуночные приколы?

=)

toFlash 20.02.2004 15:31

********:D ********

:D Очень забавно... :D

********:D ********

Nox Noctis 20.02.2004 16:26

я наверна что-то не догоняю.. а что и где тут забавно ? :)

как сделал - так и работает... в чем необычность ? :))

Штрек 20.02.2004 17:20

Я по сеоьёзному спрашиваю. :mad:
Куда делись дубликаты.
Нигде не читано, что если мувик с дубликатами
убрать со сцены, а потом вернуть то дубликаты
будут ремовится автоматом/или, что это само собой разумеется?!/. Вопрос не праздный -
ещё с полгода как сделал сайт по Сочи /информационный/
чисто на Флэше /стр.300/. Сейчас, чишу там всё подряд.
Так вот там нигде спецом команду по дубликатам /ремовить/
я не давал. Вот и думаю - не залёживаются ли они у меня где нить, не тормозят ли проц. ;)
Хорош прикалываться. :cool:

Nox Noctis 20.02.2004 18:16

Цитата:

Оригинал написал(а) Штрек
Нигде не читано, что если мувик с дубликатами
убрать со сцены, а потом вернуть то дубликаты
будут ремовится автоматом

нигде не читано, что Штрек, закопанный на глубину более метра в благословенную сочинскую почву, не перестанет думать о пропавших дубликатах :))) но что-то подсказывает....

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

если бы было не так - это было бы равносильно модифицированию чего-то в _библиотеке_ фильма на этапе исполнения. при появлении на сцене клип ведь инициализируется в таком виде как он задан в библиотеке...

Штрек 20.02.2004 18:42

Цитата:

Оригинал написал(а) Nox Noctis
когда клип удаляется со сцены - убиваются все "временные" объекты которые в нем были созданы. об этом говорится в хэлпе. в число временных объектов входят все переменные, все методы и все созданные скриптом сущности...

Вот это ответ достойный модератора!!! ;)
Если бы ещё почитать в хэлпе про удаление клипа со сцены -
вроде весь хэлп уже давно облазил, а этого не встречал -
не про ремов или дилейт, а именно про удаление со сцены путём перехода на кадр в тайм_лайне, где мувика уже нет. ;)

sergwizard 20.02.2004 20:00

Еще раз внимательно читаем Nox(а):
при появлении на сцене клип ведь инициализируется в таком виде как он задан в библиотеке...
И смотрим. При нажатии на первую кнопу, появляется МС "mmcc.mmc"(Symbol 3). И, только когда он появляется, инициируется код:
[code]if(_root.ttt==undefined){
for(i=1;i<=10;i++){
mc.duplicateMovieClip("mmmc"+i,99+i)
this["mmmc"+i]._y=i*40
this["mmmc"+i]._x=i*20
}
} [code]
Работает? Конечно!
Дальше. Жмем вторую кнопу. Убираем со сцены MC "mmcc.mmc". И тем самым убиваем всех его отпрысков. Но, помимо этого, намертво убиваем неопределенность ttt. При повторном нажатии на первую кнопу, ttt у тебя уже !=undefined, и именно это не дает размножаться MC "mc".
Вот если ты уберешь условие "]if(_root.ttt==undefined){/…",
все будет нормально.
Если что, - простите. Я сейчас вдребезги. И Вас тоже с проздником!

Nox Noctis 20.02.2004 22:22

ээ... так вопрос же был не почему дубликаты не появляются при втором нажатии,
а почему они вообще исчезают... :) не ? :)

или дайте уже затянуться тем что вы там курите %))

sergwizard 20.02.2004 22:55

Цитата:

а почему они вообще исчезают... :) не ? :)
Я же и говорю, что плейеру по барабану, какой МС закрывать, - _root или какой-то другой, внутренний MC. Закрыли - пропал и он, и его внутренности. В данном случае, перешли на первый фрейм main timeLine(a), - выгрузили MovieClip "mmcc.mcc". И значит - все его содержимое, то есть "mc" и его дубликаты.

Nox Noctis 20.02.2004 23:56

хорошая у нас беседа :))

в первый раз ты говорил - почему они не появляются при втором нажатии кнопки.
во второй раз - почему они исчезают.

вот второе - оно и было ответом на вопрос темы :)
м ? :)

Штрек 21.02.2004 01:48

sergwizard - цитировать Nox_а - это сильно. :D

sergwizard 21.02.2004 11:10

Nox, ты читаешь невнимательно. Я вчера, хотя и не трезв был, но в первом посте ОТВЕТИЛна вопрос - почему они исчезают:Дальше. Жмем вторую кнопу. Убираем со сцены MC "mmcc.mmc". И тем самым убиваем всех его отпрысков. .
И, вдобавок, я ответил еще - почему они больше не дуплятся.

Штрек 21.02.2004 14:56

Цитата:

Оригинал написал(а) sergwizard
Убираем со сцены MC "mmcc.mmc". И тем самым убиваем всех его отпрысков. .
[/b]
Из Хэлпу:
Если родительский мувиклип удаляется, дублированный мувиклип продолжает жить своей жизнью.
Цитата:

Оригинал написал(а) sergwizard

И, вдобавок, я ответил еще - почему они больше не дуплятся.

Потому что я так задумал /чтоб повторно при входе в кадр
не дублились./- для чистоты эксперимента :p

Праздничный Nox и праздничный Serg,
всё, что Вы написали интуитивно понятно и мне/и уже давно/,
но хотелось бы /как праздничный подарок/ получить
ссылку на так сказать ПЕРВОИСТОЧНИК. ;)
А так всё путём, готов к защите родного отечества. :p

iLoveYou 21.02.2004 17:29

Цитата:

Оригинал написал(а) Штрек

Из Хэлпу:
Если родительский мувиклип удаляется, дублированный мувиклип продолжает жить своей жизнью.

Цитата:

If the parent movie clip is deleted, the duplicate movie clip is also deleted.
причем "deleted" -- речь идет именно не о ремувМувиКлип(), а о переходе на другой кадр.

похожий пример: после удаления клипа (хоть с использованием ремувМувиКлип()) при возвращении на кадр, где он размещен, он естественно будет жив-здоров -- поскольку таково начальное состояние кадра.

Штрек 21.02.2004 19:00

Ты цитируешь Хэлп к разделу duplicateMovieClip,
а глянь ка раздел MovieClip.duplicateMovieClip.
Ну что Ваше превосходительство, не повысить ли
Вас к празднику до Вашего маршальства?! :D

iLoveYou 21.02.2004 21:22

Цитата:

Оригинал написал(а) Штрек
Ты цитируешь Хэлп к разделу duplicateMovieClip,
а глянь ка раздел MovieClip.duplicateMovieClip.

не мне ли лучше знать, какой раздел я цитирую ;)
MovieClip.duplicateMovieClip -- именно оттуда приведенная фраза. и даже не заглядывая: в duplicateMovieClip ничего кардинально другого написано не будет.
так что либо у тебя хелп криво переведен, либо щас кто-то будет бегать стометровку в противогазе :)

Штрек 21.02.2004 23:31

Перевод РУФЛЭШЕВСКИЙ
Цитирую:
MovieClip.duplicateMovieClip

Доступность


Flash Player 5.

Синтаксис


myMovieClip.duplicateMovieClip(newname, depth [,initObject])
Параметры


newname Уникальное имя-идентификатор для нового мувиклипа.

depth Уникальное число, определяющее глубину вложенности (Depth), куда помещается дублированный мувиклип.

initObject Объект, содержащий свойства, которые наследует новый мувиклип. Этот аргумент позволяет динамически созданным мувиклипам получать свойства указанного объекта. Если initObject не является объектом, он игнорируется. Все свойства initObject копируются в новый экземпляр. Свойства, указанные в initObject доступны функции-конструктору. Этот параметр является не обязательным.

Возвращает


Ничего.

Описание


Метод, создает экземпляр указанного мувиклипа во время воспроизведения Flash-клипа. Дублированный мувиклип всегда начинает воспроизводиться с первого кадра, при этом не имеет значения какой кадр является текущим в оригинальном мувиклипе, в момент вызова метода duplicateMovieClip. Переменные из родительского мувиклипа в дублированный мувиклип не копируются. Мувиклипы, созданные методом duplicateMovieClip не создаются, если их родителя Вы вызываете методом duplicateMovieClip. Если родительский мувиклип удаляется, дублированный мувиклип продолжает жить своей жизнью. Мувиклипы, добавленные при помощи duplicateMovieClip могут быть удалены командой или методом removeMovieClip .

А это из раздела

duplicateMovieClip

Доступность


Flash Player 4.

Синтаксис


duplicateMovieClip(target, newname, depth)
Параметры


target Путь до дублируемого мувика.

newname Уникальный идентификатор для нового экземпляра мувика.

depth Уникальное значение глубины для дублируемого мувика. Глубина - порядок расположения дублируемых мувиклипов. Он похож на порядок уровней линейки - нижерасположенные мувики перекрываются находящимися выше и имеющими большее значение глубины. Необходимо присваивать каждому новому мувику уникальную глубину, если присвоить уже имеющуюся, то новый мувик заменит старый.

Возвращается


Ничего.

Описание


Команда, создает экземпляр мувиклипа во время воспроизведения основного клипа. Дублирование всегда начинается с кадра номер 1, независимо от того, на каком кадре находился оригинальный (родительский) мувик. Содержащиеся в родительском мувике переменные, в дублируемый не копируются. Если удаляется родительский мувик, то дублированный - тоже удаляется. Используйте команду или метод removeMovieClip чтобы удалить экземпляр муви-клипа, созданного командой duplicateMovieClip.

Видать разные люди переводили, причём кто то с понятием,
а кто то нет. ;)

sergwizard 22.02.2004 00:43

Я опять праздничный. Но позволю себе обругать РУФЛЭШЕВСКИЙ перевод, который – наверное – и ввел тебя, Штрек, в заблуждение.
Цитата:

Мувиклипы, созданные методом duplicateMovieClip не создаются, если их родителя Вы вызываете методом duplicateMovieClip. Если родительский мувиклип удаляется, дублированный мувиклип продолжает жить своей жизнью. Мувиклипы, добавленные при помощи duplicateMovieClip могут быть удалены командой или методом removeMovieClip .
и еще для Flash4:
Цитата:

Дублирование всегда начинается с кадра номер 1, независимо от того, на каком кадре находился оригинальный (родительский) мувик. Содержащиеся в родительском мувике переменные, в дублируемый не копируются. Если удаляется родительский мувик, то дублированный - тоже удаляется.
Здесь путают понятия "оригинальный" MC и "родительский" МС.
Оригинальный – это тот МС, который дублируется. В твоем случае, - это МС "мс", расположенный в MC "mcc". Вот именно МС "mcc" является родителем (_parent) для МС "мс" и его дубликатов. Родитель – это контейнер (или уровень вложенности). И, если ты, переходя на фрейм, где НЕТ этого контейнера, ожидаешь увидеть СОДЕРЖИМОЕ этого контейнера, ты будешь разочарован. Хотя вполне ожидаемо.
А интересно, какой путь к этим дубликатом ты мог бы прописать?

Штрек 22.02.2004 02:52

Цитата:

Оригинал написал(а) sergwizard
И, если ты, переходя на фрейм, где НЕТ этого контейнера, ожидаешь увидеть СОДЕРЖИМОЕ этого контейнера, ты будешь разочарован. Хотя вполне ожидаемо.
А интересно, какой путь к этим дубликатом ты мог бы прописать?

Ну чего ты путаешь?
Я хочу сходить на фрейм без контейнера, потом ВЕРНУТЬСЯ
и увидеть /или нет/ дубликаты. Вот и спрашиваю - куда делись? Ввиду вышеизложенного, вопрос про пути отпадает.
Отдыхай ото, не отвлекайся. :D

sergwizard 22.02.2004 05:35

Вложений: 1
Штрек, едрена калабаха, ты чё? Дразнишься, что ли? Не думал я, что тебе на пальцах надо все объяснять. Блин, если будешь так себя вести, - фиг приеду к тебе летом.
Цитата:

Вот и спрашиваю - куда делись? Ввиду вышеизложенного, вопрос про пути отпадает.
Нет, не отпадает. Смотрим твои дубли. Имя им _root.mmcc.mcc["mmmc"+i]. То есть они существуют только на уровне mcc, это их контейнер. Если ты убираешь этот уровень, то где они должны располагаться?
Видно, все-таки придется на пальцах объяснять. Следи за руками.
Есть сундук, в сундуке монета. Ты говоришь: "вот смотрите, если я ОДИН раз свистну, монет станет десять". Свистнул, - точно, стало десять монет. Все в восторге. Ты тоже. Поигрался ты с сундуком, - и выкинул (ушел на другой фрейм). Нет у тебя ни сундука, ни монет. Все, нету! Его и в памяти нет. Посмотри в List Objects после нажатия первой кнопы, а затем после второй.
Походил ты где-то (по другим фреймам другого уровня), соскучился. Снова сундук на сцену вызвал. Вот тут читай внимательно. при появлении на сцене, клип инициализируется в таком виде, как он задан в библиотеке... . Посмотри у себя в библиотеке сундук MC "mcc" (Symbol 3). И ты увидишь, что в нем монета MC "mc"(Symbol 4) и скрипт, в котором условия размножения монет, в зависимости от количества свистков.
Появился сундук. Ты снова свистишь, размножения монет ждешь…. Хрен! Сам же задал условие, что если только ОДИН раз свистнуть, тогда процесс размножения будет. А ты уже свистел. Так что это уже не ПЕРВЫЙ свист. А сундук по-честному появился таким, каким ты его создал, с ОДНОЙ монетой.
А вот если ты сам сундук размножишь, то гуляй со второго на первый фрейм спокойно, - сам сундук будет то пропадать, то появляться, но дубликаты его будут находиться постоянно. Пока сам их не ремувишь. Потому что для сундука тоже есть контейнер (МС "ммсс"), и он никуда не выбрасывается, он постоянно присутствует на сцене. См. аттач.

Штрек 22.02.2004 10:51

Ну вот и ладненько,
а то я только с пятого раза понимаю. :p

sergwizard 22.02.2004 11:43

Гад ты, Штрек. Магнат хренов. Вместо того, что бы бестолковым прикидываться, шел бы лучше дом достраивать. Лето уже скоро. :D

nuran 22.02.2004 11:59

Цитата:

Оригинал написал(а) Штрек
Я по сеоьёзному спрашиваю. :mad:
Я вас спрашиваю, куда они делись!

Цитата:

/*

ВЕРНИТЕ ДУПЛИКАТЫ!!!!!!!!!!

*/
Мы с Серёгой к тебе вместе приедем :D

Штрек 22.02.2004 13:28

Цитата:

Оригинал написал(а) nuran

Мы с Серёгой к тебе вместе приедем :D

Выйдя из транса от прочитанного, сообщаю -
как только, так сразу. :p

Штрек 22.02.2004 13:36

Цитата:

Оригинал написал(а) sergwizard
шел бы лучше дом достраивать. Лето уже скоро. :D
У нас уже неделю валит снег.
Всё замерло. :p

ultraflasher 22.02.2004 13:40

Не П%;№№ди, знаем мы вас, пацифистов :D

iLoveYou 22.02.2004 14:32

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

ultraflasher 22.02.2004 14:51

1000m^2 Это вам не шутка

Штрек 22.02.2004 16:05

Все за Урал!!! :D

sergwizard 23.02.2004 00:28

Нет, блин! Ты посмотри на них.... Пальцем не пошевелили чтобы объяснить "бестолковому" Штреку, куда же деваются дупликаты, а в Сочи уже чемоданы собирают.... Меню спрашивают....
Все за Урал! - говорим мы со Штреком. Мы сами будем ходить во "Фламинго" и хватать девчонок за загорелые попки. :p Правда же, Штрек?

Штрек 23.02.2004 00:42

Цитата:

Оригинал написал(а) sergwizard

Все за Урал! - говорим мы со Штреком. Мы сами будем ходить во "Фламинго" и хватать девчонок за загорелые попки. :p Правда же, Штрек?

Загорелые попки - это хорошо, а когда же Флэшем заниматься. :D

sergwizard 23.02.2004 01:20

Мы найдем время и для Flash. Но, если вопрос будет стоять - или попки, или Flash, я - за попки. :)

Штрек 23.02.2004 02:25

Цитата:

Оригинал написал(а) sergwizard
если вопрос будет стоять - или попки, или Flash, я - за попки. :)
Хорошая точка в теме о дубликатах мувиклипов,
"временных" объектах и прочих умных вещах. :D

iLoveYou 23.02.2004 12:31

Цитата:

Оригинал написал(а) sergwizard
Мы сами будем ходить во "Фламинго" и хватать девчонок за загорелые попки
хватайте, хватайте и несите же наконец их к нам :)

nuran 24.02.2004 11:56

Цитата:

Оригинал написал(а) Штрек
Все за Урал!!! :D
наглёж в явном виде, ....


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

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