Просмотр полной версии : проблемы с условием
Люди! Не могу дойти как правельно пользоваться IF'ом!
Посмотрите кому не лень!
(нужно чобы при достиж опред. коорд. клип выгружался)
Код клипа:
onClipEvent (load) {
_x = 78;
_y = 78;
}
onClipEvent (enterFrame) {
_x = _x+5;
if (_x>477) {
removeMovieClip("");
}
}
код на 1 фрэйме:
attachMovie( "ball", "w",9999 );
removeMovieClip дефствует только для мувиков созданных динамически
Например при помощи
attachMovie или duplicateMovieClip
А код в таком виде как ты его написал можно прописать лишь в том случае если ты его вытащил на сцену.
Что тогда делать в моем случае?
MasterAlien
17.02.2003, 11:50
В здесь убери только начальные координты в теге {on load}
Затем этому мувику в библиотеке сделай export to Action script , назови его как хочешь , и просто программно вставляй его из библиотеки куда хочешь и с какими хочешь кооординатами, углом поворота.....
И самое главное.... собственно почему у тебя и не получалось... Этот код надо переставить либо во внутренний фрейм твоего мувика , либо код оставить как есть , единственное к каждой координате добавить _parent._x и вставить этот мувик в еще один , который и надо копировать..........
Т.е при внесении в библиотеку именно твоего случая не сохранят кода , он должен быть вложен одним из 2-хспособов
Nox Noctis
17.02.2003, 17:07
Оригинал написал(а) F_Flash
removeMovieClip дефствует только для мувиков созданных динамическиа вот это не врите :)))
MasterAlien
17.02.2003, 17:12
А никто и не врет........ официальный макромедиа-хелп гласит :
Ремув мувиклип - это : removes a movie clip instance created with the duplicateMovieclip action, or the duplicateMovieClip or attachMovie methods of the MovieClip object.
Собсно оно так и действует *)
Nox Noctis
17.02.2003, 17:22
нууу... мало ли чего там макромедия гласит =)
удалить функцией ремувМувиКлип клип созданный не динамически можно... мож-но :))
Оригинал написал(а) Nox Noctis
а вот это не врите :)))
:)))) Ну тогда аргументируй примером
Nox Noctis
17.02.2003, 17:27
уже по крайней мере дважды упоминалось это здесь, совсем недавно второй раз был :))
ХИНТ: ремувМувиКлип не работает с клипами лежащими на отрицательной глубине.
и ВСЕ. а создан клип динамически или нет - это по барабану абсолютно... :)
тест на догадливость: как при данных условиях удалить НЕдинамический клип ? :))
iLoveYou
17.02.2003, 17:35
эх, не догадаются... подсказывать не буду;)
MasterAlien
17.02.2003, 17:38
Нееее чувак , ты явно ничего не понял...
Чисто ручками , когда ты создаешь мувиклип , ты его не вделаешь в область положительных depth-ов , зато ты можешь зделать это программно :
muvik.swapDepths(5);
а потом ессно ,
muvik.removeMovieClip();
НО ! swapDepths - создает КОПИЮ твого мувика на уровне 5... собсно опять таже самая ДИНАМИКА , ты опять не убедил !
Nox Noctis
17.02.2003, 17:42
создает КОПИЮ это с какой-такой радости копию ? :)) откуда такие потрясающие сведения ? :)
никакую не копию - просто перемещает по z-индексу клип и все.
если глубина неотрицательна - ремув работает.
так что....
Все четко, удаляет, debug->list obcject
Выдает что ремувится.:)
Признаю свою не правоту.
Все четко, удаляет, debug->list obcject
Выдает что ремувится.:)
Все четко, удаляет, debug->list obcject
Выдает что ремувится.:)
Сорри за столько сообщений, браузёр глюкануло.
MasterAlien
17.02.2003, 18:01
Но всеравно , без динамики не ОБОЙТИСЬ и не ОБОШЛОСЬ ( продолжаю настаивать на своем ;) ) так чё прав - я !
Nox Noctis
17.02.2003, 18:14
оххх... ну без какой динамики, а ? :)
клип создается в таймлайне ручками, после этого мы только меняем его глубину...
клип НЕ инициализируется заново, копия не создается...
какая тут нафиг динамика ?
MasterAlien
17.02.2003, 18:19
Параметры глубины ты тоже ручками меняешь ????
Нет ?
Ну вот и всё !
Nox Noctis
17.02.2003, 18:25
если уж на то пошло - то удаление-то ремувМувиКлип'ом - самое что ни есть динамическое :))
...так что без динамики в этом вопросе никак канеш :))
iLoveYou
17.02.2003, 18:27
2MasterAlien
у меня вопрос возник.
раз ты такой умный, чёж ты сразу челу про свопДепс не сказал, а предложил какой-то, честно говоря, не лучший способ, а? ;)
MasterAlien
17.02.2003, 18:39
На мой взгляд все очень просто...
мой способ многофункционален(оспользование импорта из библиотеки) т.е. може быть применен многократно и сильно облегчить задачу.... , если использовано много объектов
Задачи какойто конкретной не стояло ...
Ну а ежели вы собираетесь использовать просто 1 или 2 мувика , то ессно проще свапом воспользоваться........
собсно я хотел своим ответом охватить как можно больше возможных вариантов.
Вы че? Развели дисскусию.
Клип был создан вручную. Это факт. Своп депт. Меняет свойства клипа.
А не создает дубликат , а если и создает то затирает старый. Факт удаления влюбом случае происходит.
И клип был создан не динамически. Если нюанс в том как он был удален, является проблемой то тогда конечно. В чем хитрость то было чтоб закилять существующий мувик.
iLoveYou
17.02.2003, 18:50
2MasterAlien
а мне показалосъ, про свопДепс тут Нокс намекнул..
а вообще хороший топ получился.
Nox Noctis
17.02.2003, 18:58
MasterAlien, Вы уж простите, но помоему вы городите гнилые отмазки ради восстановления собственного самолюбия =))
"естесственно просто свапом"... =)) как это мило...
свап использовать только для 1-2 клипов ?
неуниверсальный метод ? немногофункциональный ? :))
это знаете ли вопрос в том, КАК использовать известный метод.
MovieClip.prototype.$remove = MovieClip.prototype.removeMovieClip;
MovieClip.prototype.removeMovieClip = function() {
if (this.getDepth()<0) {
this.swapDepths(999999);
}
this.$remove();
};
предложишь что-нить более многофункциональное, м ? :))
iLoveYou
17.02.2003, 19:13
хе! опередил...
MasterAlien
17.02.2003, 19:15
Ну создали новую универсальную функцию для удаления мувиклипов... но ее целесообразно применять для большого числа нединамических клипов в сцене......... а когда их много , то опять-же целесообразнее будет создавать их динамически..... хоть в играх , хоть в меню , хоть в интерактивных преложениях.......
просто я немогу придумать пример , где надо сделать много нединамических объектов , которые потом надо удалить.... , да еще и учесть то , что здесь будет неприемлема возможность создать их динамически....
Nox Noctis
17.02.2003, 19:27
хм.
если есть функция, которая удалит клип вне зависимости от того, как клип был создан - это уже как минимум одной проблемой меньше.
при чем тут "много клипов" ?
нас спросили как выгрузить клип - и все.
остальное - пока что софистика...
надо делать как удобно и как работает, только и всего =)
MasterAlien
17.02.2003, 19:40
Тут полностью согласен , что надо делать как удобно и как работает, только и всего =)
Вот я потому и делаю всегда так... т.е если я создаю алгоритм к игрушке , интерактиву , ну любой flash-объект , то я всегда делаю все рассматривая с глобальной точки зрения , т.е. чтобы созданный мною код , метод был как можно более функционален , т.е. если я сделал скрипт с созданием горизонтальной менюшки , то мне достаточно поменять 1 переменную , и меню будет вертикальным , располагаться полукругом , или как мне захочется........ , а не писать на каждый из вариантов свой скрипт.......
Собственно наше несогласие и кроется в том , что я продошел к проблемме с глобальной стороны ,а ты с более конкретной... вот и все. *)
Nox Noctis
17.02.2003, 19:53
брррр.... ладно, не будем флудить...
задали конкретный вопрос - на него конкретный практический ответ...
а ты зачем-то толкуешь о космических кораблях бороздящих просторы большого театра :))
MasterAlien
17.02.2003, 19:59
Ну , это на самом деле кому как нравится... я предпочитаю , как ты говоришь про корабли... а ты более конкретно ... собсно это решать каждому для себя ...
А пообщаться было приятно , довольно интересно пролетели последние рабочие часы... *)
Удачи *)
Весело пообщалися, но проблемка довольн-таки нехитрая,
посмотрите лучше на вложенную ФЛА'шку, пуская пример деревянный, зато все понятно.
Nox Noctis
18.02.2003, 16:24
хех... так ошибка-то именно та, о которой тут столько постов было...
все очень просто -
removeMovieClip("") равносильно removeMovieClip(this)
НО
у тебя же тот мувик, в котором прописан onClipEvent _сам_ не аттачится... у тебя аттачится _родительский_ по отношению к нему.
напиши removeMovieClip(_parent) и все резко заработает :)
внимательнее надо быть... :)
а лучше -
убери ВЕСЬ скрипт изнутри мувика 'ball' и перепиши аттач так:
attachMovie("ball", "w", 9999, {_x:115, _y:198, onEnterFrame:function () {
if ((this._x+=5)>=477) {
this.removeMovieClip();
}
}});
по-моему так удобнее... весь скрипт в одном месте... :)
Блин, спасибо! Буду бдительнее!Все-таки люди!
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.