Просмотр полной версии : Удаление и создание новых объектов!
Вобщем, так как начал только осваивать Flash ...
у меян дан мувиклип, мне нужно чтобы при загрузке создавалось N количество такого мувика, и при выходе за границы или при нажатии на него клип удалялся и собственно потом опять создавался!
amexdesign
04.01.2009, 03:25
для начала темы для изучения:
1. createEmptyMovieClip()
2. removeMovieClip()
3. создание массивов по принцыпу: for(i=0; i<10; i++)
когда будут ясны основные принципы, можно поговорить и о программировании
успехов
а помоему место createEmptyMovieClip() лучше использовать attachMovie() или duplicateMovieClip().
спасибо буду осваивать!
но чтоб не создавать другую тему, у меян появилась еще одна проблема!
У меня происходит действие с помощью похожей функции которую я описывал вам выше(тема поста), при этом мне нужно заменить курсор! при замене, получается так что курсор слоем ниже, чем клип который дублируется!
как осуществить то, что бы курсор был высшим слоем(хотя на в слоях он вверху)
amexdesign
04.01.2009, 15:47
У меня происходит действие с помощью похожей функции которую я описывал вам выше(тема поста), при этом мне нужно заменить курсор! при замене, получается так что курсор слоем ниже, чем клип который дублируется!
как осуществить то, что бы курсор был высшим слоем(хотя на в слоях он вверху)
вопрос. графика нового курсора лежит на рабочем столе или закидывается с помощью attachMovie()?
cursor.swapDepths(0x7EFFBFEF);
amexdesign
04.01.2009, 18:53
mc.swapDepths(1);
duplicateMovieClip("mc", "mc_new", 2);
cursor.swapDepths(3);
что то 0 рекции, простой курсор и все(
Выкладывайте Вашу нетленку. Будем разбираться.
dimarik, а как это понять cursor.swapDepths(0x7EFFBFEF);
Это в смысле выше указанного цвета?))
amexdesign
04.01.2009, 21:47
пожалуста...
Спасибо огромное, я запутался вот с этим .swapDepths так толком и непонял что оно делает!
amexdesign
05.01.2009, 00:41
пожалуйста... swapDepths указывает на глубину слоя
dimarik, а как это понять cursor.swapDepths(0x7EFFBFEF);
Это в смысле выше указанного цвета?))
Это наивысшая глубина, на которой еще можно удалить экземпляр MovieClip'a методом MovieClip.removeMovieClip(). Вы же согласитесь с тем, что курсор должен находиться выше любого контента, а не на глубине, простите,
cursor.swapDepths(3);
Глубина дана как hex. Число 2130690031 выглядит менее читабельно =)
Добавлено через 5 минут
пожалуйста... swapDepths указывает на глубину слоя
Почти правильно. Из хелпа:
swapDepths (MovieClip.swapDepths method)
public swapDepths(target:Object) : Void
Parameters
target:Object - This parameter can take one of two forms:
- A Number that specifies the depth level where the movie clip is to be placed.
- An instance name that specifies the movie clip instance whose depth is swapped with the movie clip for which the method is being applied. Both movie clips must have the same parent movie clip.
При повтороном проигрывании мувиклипа, через кнопку... остается отпечаток курсора и появляется новый...
короче ппц че получается(
Поделитесь исходничком, не стесняйтесь.
вобщем с курсором попробую разобраться позже, прошу вас помочь мне разобраться с фунуцией.... я долго сидел мучился... но не смог...
у меня в файле функция которая создает объект и потом его удаляет и двигает.. вобщем увидите как скачаете...
проблема состоит в том: как сделать чтобы двигался еще второй объект, в проэкте в библиотеке лежит мувиклип...
помогите пож!
gloomyBrain
08.01.2009, 07:04
2 dimarik
cursor.swapDepths(0x7EFFBFEF);
... это сильно
Вы глубину наизусть знаете? А если сразу после этого написать
this.createEmptyMovieClip("blah-blah", this.getNextHighest Depth())
- получается - мы создадим такой мувик, который сами же не сможем удалить?
отличный метод
ПРОЩЕ:
1)создать мувик для всего КРОМЕ курсора
2)создать мувик ДЛЯ курсора
при необходимости пихать новые объекты на наивысший слой в 1)-ом мувике
2 dimarik
cursor.swapDepths(0x7EFFBFEF);
... это сильно
Вы глубину наизусть знаете? А если сразу после этого написать
this.createEmptyMovieClip("blah-blah", this.getNextHighest Depth())
- получается - мы создадим такой мувик, который сами же не сможем удалить?
Да, не сможете удалить на глубине 0x7EFFBFEF + 1.
DarkLight
09.01.2009, 22:17
Да, не сможете удалить на глубине 0x7EFFBFEF + 1.
Ну напрямую не сможем, а swapDepths сделать и потом удалить - вполне успешно.
AlexCooper
09.01.2009, 22:26
разместить слой с курсором выше чем дублируемые клипы. (Если конечно дубликация идёт из не подгружаемого клипа) иначе два контейнера и в верхнем (по относительно глубины) размещать курсор а в нижнем вести дубликацию
помогите сделать такое же движение на этой же прямой тольколько второго объекта...
у меня не получается(((
все в проэкте!
Ну напрямую не сможем, а swapDepths сделать и потом удалить - вполне успешно.
Естесственно
AlexCooper
10.01.2009, 02:47
2 noode:
Я не понял что Вам именно нужно но вот что поменял я
function newBalloon() {
// Определяем, могут ли появиться новые шары
if (nextBalloon < numBalloons) {
// Проверяем, пришло ли достаточно времени после появления последнего шара
if (getTimer() > nextBalloonTime) {
objN=Math.floor(Math.random()*2)+1;
// Создаем новый шар
attachMovie("f"+objN, "f"+nextBalloon, nextBalloon);
// Выбираем, с какой стороны и с какой скоростью полетит шар
_root["f"+nextBalloon].m=Math.floor(Math.random()*2);
if (_root["f"+nextBalloon].m==1)
{
_root["f"+nextBalloon]._x = 580;
dx = -10;
r = -1;
}
else
{
_root["f"+nextBalloon]._x = 0;
dx = 10;
r = 1;
}
// choose height of balloon
_root["f"+nextBalloon]._y =197.6;
_root["f"+nextBalloon].r=r;
// add balloon to array
balloons.push({clip: "f"+nextBalloon, d: dx});
// set things up for next balloon
nextBalloon++;
nextBalloonTime = getTimer() + 1000;
}
} else _root.stopFF=true;
}
function moveBalloons() {
// loop through balloons in array
for(i=balloons.length-1;i>=0;i--) {
// get speed and clip
dx = balloons[i].d;
f = _root[balloons[i].clip];
// move balloon
f._x += dx;
f._rotation+=(f.r*10);
f._y = 224-(f._height/2);
// balloon exit left
if ((dx < 0) and (f._x < -20) || (f._x> 600)) {
f.removeMovieClip();
balloons.splice(i,1);
}
}
// see whether all balloons gone
if ((nextBalloon >= numBalloons) and (balloons.length < 1)) {
gotoAndStop("game over");
if (_root.stopFF==true) delete _root.moveBG;
}
}
спасибо, буду разбираться...
почти ничего непонятно!
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.