Помощь · Поиск · Пользователи · Календарь
Полная версия этой страницы: Люди, если сможете, то помогите
Flash Zone Forum > Macromedia Flash > Начинающим
SIVka
Люди, помогите если сможете. Кто знает, что обозначает 4080 в коде duplicateMovieClip("ball","ball1",4080); и как можно удалить объект с помощью ActionScript?

tiHo
4080 ето глубина клипа, т.е. его отображение на екране.

если у клипа глубина допустим 1, а у другого глубина 3, то тот у которого 1, будет под тем у которого 3.

тоесть когда будут вместе, то один должен отображаться над другим. ето число и решает кто будет над кем.

специально изменить можно с помощью метода

Код
имя_клипа.swapDepths(глубина);


удалить объект(скорее всего ты имееш ввиду клип), можно только если ты оздал его скриптом, или вытащил из библиотеке скриптом:

Код
removeMovieClip(имя_клипа);
MustLive
SIVka

Вопросы касательно duplicateMovieClip, как по поводу создания копий объёктов, так и по поводу их последующего удаления, на форуме обсуждались многократно.

В дополнение к ответу tiHo, который уже рассказал тебе про глубину и про методы для работы с мувиклипами, также можешь почитать нашу рассылку. Где я приводил примеры работы с duplicateMovieClip и removeMovieClip. В частности обрати внимание на 15 номер рассылки.
SIVka
Почему у меня не выводится дубликат? Я ввожу скрипт (написанный ниже), запускаю и выводится только первоначальное изображение, а дубликата нет. Причем ошибок не замечает.

duplicateMovieClip("ball","ball1",4080);
setProperty("ball1",_x,300);
setProperty("ball1",_y,300);
DJKOT
см. исходник






скачать
MustLive
SIVka

Почитай рассылку и посмотри мой исходник, почитай пост tiHo (о командах для работы с мувиком), посмотри исходник DJKOT.

О подобном на форуме не раз писали, в том числе и в этой теме. Так что для того чтобы разобраться (как сделать дубликат и разорбаться со своими ошибками, и сделать чтобы всё работало), для этого нужно учить AS, в том числе и практиковаться в программировании на AS (и самостоятельно исправлять все возникающие ошибки). А также нужно читать наш форум и рассылку, где достаточно материла на эту тему.

Также можешь посмотреть различные исходники (в инете найти или в нашей рассылке взять или взять у DJKOT), и разобраться. И сделать рабочую флешку с дубликатами (что весьма несложно).
tiHo
и еще:

неиспользуй setProperty

гораздо проще написать

Код
duplicateMovieClip("ball","ball1",4080);
ball1._x=300
ball1._y=300


setProperty - устарела
MustLive
tiHo справедливо заметил, так что SIVka можешь переходить на обновлённый синтаксис AS (и стиль программирования). И вместо setProperty используй оператор присваивания.

Ранее во флеш 4 использовался setProperty. В 5 флеше ввели возможность работы с оператором присваивания для установки свойств объектов. С тех пор в основном этот метод используют, что всем и рекомендуется делать. Тем более во время 8го флеша (а также флекса), и скоро уже флеш 9 выходит. Поэтому стоит использовать актуальный синтаксис.

Оператор setProperty по прежнему поддерживается (в целях совместимости), но рано или поздно Адоб от него откажеться, как от пережитка прошлого. Так что стоит заранее себя приучивать к современному синтаксису.
DJKOT
ну как сказать....

что проще писать

_quality = "LOW"
или
setProperty(_quality, "", "LOW";)

первый вариант как-то неудобен. большую часть своего флэшевского опыта работаю на 5-ке.
tiHo
а мне кажится первый как раз то и удобнее.

и размер флешки меньше.

а если у тебя проект на 3000 строк?
уже будет заметная разница в размере флешки wink.gif

и еще:

зачем ты в setProperty поставил точку с запятой перед скобкой а не после нее? очень торопился написать? biggrin.gif
DJKOT
ошиПка smile.gif
nikitar
Код
что проще писать

_quality = "LOW"
или
setProperty(_quality, "", "LOW";)

первый вариант как-то неудобен. большую часть своего флэшевского опыта работаю на 5-ке.


Лучше сейчас начать уже переучиваться.
Сейчас выйдет уже 9-я версия флэша. Отменили setProperty в 5-й, ну точнее в 6-й наверно. Новички обучаются по старым исходникам, и когда приходят и спрашивают что да как, нужно говорить, что setProperty это плохо и устарело.
MustLive
Цитата
Лучше сейчас начать уже переучиваться.
Сейчас выйдет уже 9-я версия флэша. Отменили setProperty в 5-й, ну точнее в 6-й наверно.

Верно заметил, nikitar, стоит начинать переучиваться уже сейчас. Чем раньше тем лучше. Чтобы не случилось так, что в один прекрасный день, в новой версии флеша полностью отменят поддержку такого-то оператора, который ты усилено использовал, и тебе придётся понапрягяться - переделывать исходники своих проектов и переучиваться.

А вот насчёт отмены setProperty ты поторопился. По поводу данного оператора я ранее писал. Но про его отмену я не сказал, т.к. он не был отменён - до сих пор (до 8й версии флеша включительно).

В 5й версии переделали синтаксис (тогда AS получил впервые версию 1.0, до этого он был без версии, лишь как язык встроеных сценариев флеш), и с этой версии AS начал стремительно развиваться.

В 5й особо ничего не отменяли, но ввели много нововедений. А вот в 6й версии, помомо очередных новведений, также отменили ряд устаревших конструкций. И флеш с той версии при загрузке старого исходника автоматически меняется исходник и выводит сообщение (что устаревший код изменён).

Все устаревшие и нерекомедованные к использованию операторы занесены в раздел Deprecated. Этим самым намекая, а это общепринятая практика (помечать как deprecated), что в ближайшее время данные операторы будут полностью отменены (и редактор флеш все подобные операторы автоматически заменяет).

При этом замечу, что ни в версии 6/мх, ни в 8м флеше оператор setProperty не отменили. Его даже в Deprecated не занесли. Так что пока месть setProperty является рабочим оператором. Но это ненадолго, поэтому стоит использовать актуальный синтаксис и приучивать себя к оператору присваивания.
Rohan
blink.gif а че если мне не то что хочецца, а просто необходимо использовать пусть не setProperty, но его полную аналогию - типа там
Код
public function setProp(propName:Object,value:Object):Void {
    this[propName] = value;
}
для упрощения кода? Кто мне запретит? Кто мне посмеет сказать что оно deprecated? Все что есть у флеша является наследником Object-а, и, имхо, грех этим не воспользоваться. Ну, там где это нужно, само собой.
DJKOT
вообще-то, прочитав ЭТО все удивляются, но вы я думаю не удивитесь.

у меня на компе стоят все версии флэша начиная с пятого. Я спокойно рулю и в семерке и восьмерке. Сейчас сижу в 6-ом (5-й не работает). В восьмерке правда, рисовать неудобно, но если что, я и на ней выживу smile.gif
tiHo
у меня 7,8, и флекс2 в котором я до сих пор немогу разобраться laugh.gif

но использую 7 потому что привык к ней, и метод рисования в 8 ненравится (хотя он мало чем отличается от 7) и переучиваться нехочется

действительно. зайдеш на сайт статей по программированию, и нарвешся на статьи по 5-ой версии. убить админов хочется biggrin.gif
Rohan
Ну это разве что для аниматора. Я выжить сумею на седьмом - это предел. Ниже - никак. В последнее время возможностей восьмого все больше не хватает.
DJKOT
ты что, программер что ли? smile.gif
nikitar
Цитата
Все устаревшие и нерекомедованные к использованию операторы занесены в раздел Deprecated. Этим самым намекая, а это общепринятая практика (помечать как deprecated), что в ближайшее время данные операторы будут полностью отменены (и редактор флеш все подобные операторы автоматически заменяет).

Под словом отменили я понимаю, что отменили его как основное средство изменения свойств мувиклипа и присвоили ему статус Deprecated. Действительно, возможно что в новых версиях флэша его вообще не будет.


Цитата
но использую 7 потому что привык к ней, и метод рисования в 8 ненравится (хотя он мало чем отличается от 7) и переучиваться нехочется

А чем отличается метод рисования на flash 8?
Правда я пользовался сначала только flash MX, а потом сразу на 8-ку перешёл, сейчас на 8-ке уже год...
Rohan
Цитата(DJKOT @ 9.02.2007 - 12:54) *

ты что, программер что ли? smile.gif

угу. Сам флеш вообще практически не использую.
Русская версия IP.Board © 2001-2007 IPS, Inc.