Форум 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)
-   -   AS2 attachMovie (http://www.flasher.ru/forum/showthread.php?t=209835)

kambodge 29.12.2014 10:20

AS2 attachMovie
 
Всем привет, у меня есть проблема к attachMovie..
Есть такой код, у меня в библиотеке символов лежит 9 мувиклипов, у каждого своего имя cl1,cl2...cl9
Есть определенные "пазы" на сцене куда эти мувиклипы "квадраты" должны стать.
И есть 9 кнопок для выбора, первые 3 добавляют один из cl1,cl2,cl3 мувиклипов
следующие 3 добавляют один из cl4,cl5,cl6
следующие 3 добавляют один из cl7,cl8,cl9

Вопрос в чем... Как к команде attachMovie добавить позицию приатаченного мувиклипа _x,_y
Я как не пробовал, у меня ничего не выходит...
Пазов 3

заранее спасибо)

udaaff 29.12.2014 10:36

Если правильно вас понял, то:
1. attachMovie() возвращает ссылку на приаттаченый мувик, т.е. записываете ссылку в переменную и далее задаете необходимые свойства.
2. В attachMovie() можно передавать initObject для инициализации мувика.

http://help.adobe.com/en_US/AS2LCR/F...78.html#368157

kambodge 29.12.2014 10:37

Нашел неполное решение этой проблемы...
Клип мы добавляем, все верно, координаты тоже работают отлично, теперь вопрос в другом.
К примеру эти кнопки и мувиклипы находятся в мувиклипе "anim"
а нам нужно что бы после наших нажатий на кнопки, мувиклипы добавлялись не в этот мувиклип (в котором мы находимся, а снаружи да еще и на втором кадре...

on (press) {

cl1.duplicateMovieClip ('rl1', this.getNextHighestDepth());
rl1._x = 194;
rl1._y = 225;

}

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

Сообщение от udaaff (Сообщение 1176971)
Если правильно вас понял, то:
1. attachMovie() возвращает ссылку на приаттаченый мувик, т.е. записываете ссылку в переменную и далее задаете необходимые свойства.
2. В attachMovie() можно передавать initObject для инициализации мувика.

http://help.adobe.com/en_US/AS2LCR/F...78.html#368157

спасибо за ответ, а получится с помощью attachMovie() добавлять мувиклип на stage? (в _root, как я понимаю и на второй фрейм?)

Добавлено через 41 минуту
И с _root я разобрался)) осталось только реализовать последнюю фичу
вот первая кнопка к примеру bt1 добавляет первый клип cl1, потом чел кликает и на bt2 и на bt3
и все 3 клипа будут становится на одно и тоже место, а надо что бы был выбран только один...
конечно можно кнопку заблочить, реализовать легко, но я хочу попробовать сделать так, что бы кнопка bt1 удаляла все клипы cl2 и cl3 кроме своего cl1 и так на каждую кнопку.
Как я понимаю, нужно на кнопку bt1 навесть функцию removeMovieClip...
Я прав?
Как закончу, выложу весь код для таких же нубов как и я_)

Добавлено через 1 час 35 минут
Есть проблемка..
Есть код для каждой кнопки, bt1...bt9
Код идентичен, не считая нескольких нюансов "sh1","rn1"
В чем проблема - Только последняя нажатая кнопка работает, остальные добавленные клипы, скорее всего просто заменяются на него и в итоге только 1 клип, а должно быть 3 клипа...
Код AS1/AS2:

on (press){
        gotoAndStop(27);
        _root.sh1.duplicateMovieClip ('rn1'this.getNextHighestDepth());
        _root.rn1._x = 412;
        _root.rn1._y = 299;
        _root.rn1._alpha =0;
}
on (press){
        gotoAndStop(28);
        _root.sh2.duplicateMovieClip ('rn2'this.getNextHighestDepth(1));
        _root.rn2._x = 412;
        _root.rn2._y = 299;
        _root.rn2._alpha =0;
}

Добавлено через 1 час 41 минуту
Скорее всего проблема в this.getNextHighestDepth());
Попробовал заменить 1ну из кнопок на _root.getNextHighestDepth());
Теперь частично работает, у нас теперь 2 мувиклипа в итоге на сцене из 3х
Получается надо присваивать каждого мувиклипу свою глубину? так?

Код AS1/AS2:

        _root.sh1.duplicateMovieClip ('rn1'this.getNextHighestDepth());

з.ы. Очень извиняюсь за то, что посты от меня подряд идут.. просто пытаюсь разобраться в проблеме, а не просто сидеть и ждать пока помогут)

Добавлено через 2 часа 4 минуты
Замена на всех кнопках
Код AS1/AS2:

this.getNextHighestDepth());
 
_root.getNextHighestDepth());

но теперь надо использовать

Код AS1/AS2:

        removeMovieClip(_root.rn1);
        removeMovieClip(_root.rn2);
        removeMovieClip(_root.rn3);

В принципе все работает)


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

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