Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Удаление и создание новых объектов! (http://www.flasher.ru/forum/showthread.php?t=119860)

noode 03.01.2009 23:00

Удаление и создание новых объектов!
 
Вобщем, так как начал только осваивать Flash ...
у меян дан мувиклип, мне нужно чтобы при загрузке создавалось N количество такого мувика, и при выходе за границы или при нажатии на него клип удалялся и собственно потом опять создавался!

amexdesign 04.01.2009 03:25

для начала темы для изучения:
1. createEmptyMovieClip()
2. removeMovieClip()
3. создание массивов по принцыпу: for(i=0; i<10; i++)
когда будут ясны основные принципы, можно поговорить и о программировании

успехов

Zik. 04.01.2009 11:07

а помоему место createEmptyMovieClip() лучше использовать attachMovie() или duplicateMovieClip().

noode 04.01.2009 11:28

спасибо буду осваивать!

но чтоб не создавать другую тему, у меян появилась еще одна проблема!
У меня происходит действие с помощью похожей функции которую я описывал вам выше(тема поста), при этом мне нужно заменить курсор! при замене, получается так что курсор слоем ниже, чем клип который дублируется!
как осуществить то, что бы курсор был высшим слоем(хотя на в слоях он вверху)

dimarik 04.01.2009 15:06

Тко татой эээ... "меян"?

amexdesign 04.01.2009 15:47

Цитата:

У меня происходит действие с помощью похожей функции которую я описывал вам выше(тема поста), при этом мне нужно заменить курсор! при замене, получается так что курсор слоем ниже, чем клип который дублируется!
как осуществить то, что бы курсор был высшим слоем(хотя на в слоях он вверху)
вопрос. графика нового курсора лежит на рабочем столе или закидывается с помощью attachMovie()?

dimarik 04.01.2009 16:12

cursor.swapDepths(0x7EFFBFEF);

noode 04.01.2009 16:35

на рабочем столе

amexdesign 04.01.2009 18:53

mc.swapDepths(1);
duplicateMovieClip("mc", "mc_new", 2);
cursor.swapDepths(3);

noode 04.01.2009 19:04

что то 0 рекции, простой курсор и все(

dimarik 04.01.2009 20:40

Выкладывайте Вашу нетленку. Будем разбираться.

KiL33 04.01.2009 21:05

dimarik, а как это понять
Код:

cursor.swapDepths(0x7EFFBFEF);
Это в смысле выше указанного цвета?))

noode 04.01.2009 21:15

Вложений: 1
вот...

amexdesign 04.01.2009 21:47

Вложений: 1
пожалуста...

noode 04.01.2009 22:31

Спасибо огромное, я запутался вот с этим .swapDepths так толком и непонял что оно делает!

amexdesign 05.01.2009 00:41

пожалуйста... swapDepths указывает на глубину слоя

dimarik 05.01.2009 15:36

Цитата:

Сообщение от KiL33 (Сообщение 788101)
dimarik, а как это понять
Код:

cursor.swapDepths(0x7EFFBFEF);
Это в смысле выше указанного цвета?))

Это наивысшая глубина, на которой еще можно удалить экземпляр MovieClip'a методом MovieClip.removeMovieClip(). Вы же согласитесь с тем, что курсор должен находиться выше любого контента, а не на глубине, простите,

Цитата:

cursor.swapDepths(3);
Глубина дана как hex. Число 2130690031 выглядит менее читабельно =)

Добавлено через 5 минут
Цитата:

Сообщение от amexdesign (Сообщение 788132)
пожалуйста... 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.

noode 06.01.2009 01:47

При повтороном проигрывании мувиклипа, через кнопку... остается отпечаток курсора и появляется новый...
короче ппц че получается(

dimarik 06.01.2009 17:30

Поделитесь исходничком, не стесняйтесь.

noode 08.01.2009 02:03

Вложений: 1
вобщем с курсором попробую разобраться позже, прошу вас помочь мне разобраться с фунуцией.... я долго сидел мучился... но не смог...
у меня в файле функция которая создает объект и потом его удаляет и двигает.. вобщем увидите как скачаете...
проблема состоит в том: как сделать чтобы двигался еще второй объект, в проэкте в библиотеке лежит мувиклип...
помогите пож!

gloomyBrain 08.01.2009 07:04

2 dimarik
Код AS1/AS2:

cursor.swapDepths(0x7EFFBFEF);

... это сильно
Вы глубину наизусть знаете? А если сразу после этого написать
Код AS1/AS2:

this.createEmptyMovieClip("blah-blah", this.getNextHighest Depth())

- получается - мы создадим такой мувик, который сами же не сможем удалить?

отличный метод

ПРОЩЕ:
1)создать мувик для всего КРОМЕ курсора
2)создать мувик ДЛЯ курсора

при необходимости пихать новые объекты на наивысший слой в 1)-ом мувике

dimarik 09.01.2009 21:56

Цитата:

Сообщение от gloomyBrain (Сообщение 788873)
2 dimarik
Код AS1/AS2:

cursor.swapDepths(0x7EFFBFEF);

... это сильно
Вы глубину наизусть знаете? А если сразу после этого написать
Код AS1/AS2:

this.createEmptyMovieClip("blah-blah", this.getNextHighest Depth())

- получается - мы создадим такой мувик, который сами же не сможем удалить?

Да, не сможете удалить на глубине 0x7EFFBFEF + 1.

DarkLight 09.01.2009 22:17

Цитата:

Да, не сможете удалить на глубине 0x7EFFBFEF + 1.
Ну напрямую не сможем, а swapDepths сделать и потом удалить - вполне успешно.

AlexCooper 09.01.2009 22:26

разместить слой с курсором выше чем дублируемые клипы. (Если конечно дубликация идёт из не подгружаемого клипа) иначе два контейнера и в верхнем (по относительно глубины) размещать курсор а в нижнем вести дубликацию

noode 09.01.2009 23:17

Вложений: 1
помогите сделать такое же движение на этой же прямой тольколько второго объекта...
у меня не получается(((
все в проэкте!

dimarik 10.01.2009 01:57

Цитата:

Сообщение от DarkLight (Сообщение 789317)
Ну напрямую не сможем, а swapDepths сделать и потом удалить - вполне успешно.

Естесственно

AlexCooper 10.01.2009 02:47

2 noode:
Я не понял что Вам именно нужно но вот что поменял я
Код AS1/AS2:

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;
        }
}


noode 10.01.2009 02:56

спасибо, буду разбираться...
почти ничего непонятно!


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

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