Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   как многократно поместить мувиклип (http://www.flasher.ru/forum/showthread.php?t=183353)

Fazer 19.08.2012 19:51

как многократно поместить мувиклип
 
Всем привет! Вопрос в том, как многократно поместить один и тот же мувиклип на фон (другой мувиклип) каждый в свои заданные координаты. Через массив как-то надо, но как сделать не знаю.

Wadimir 19.08.2012 21:58

смотря в чём проект делается.

А вообще многократность это цикл

MINASTIS 19.08.2012 22:07

В чем состоит вопрос? Многократно поместить - поместите. Сделайте три, четыре, может пять, может двадцать мувиклипов и поместите.
И насчет массива - можно через массив, сделать привязку каждого клипа к элементу массива.
В чем вопрос-то? Как работать с массивом? Есть хелп, есть гугл, есть Колин Мук.

Fazer 20.08.2012 00:08

Делаю в обычном Adobe Flash Professional CS6, учусь только.
Плодить кучу клипов примитивно и ресурсоёмко.
Вопрос состоит в том, что есть мувиклип небольшого размера, но его нужно продудлировать на сцене (вобщем-то на другом мувеклипе помещённом на всю сцену как фон) в разных местах, используя функцию описывающую эти действия, и метод в классе, где в скобочках можно было бы указать цифрами координаты, а также кол-во коордитат больше двух (4,6,8,10...) указывало на добавление нового клипа и размещение по данным координатам. Искал похожее в хелп, в гугл не нашёл, в Муке примеры не подходящие.

MINASTIS 20.08.2012 00:14

Напишите класс, там создайте функцию, что добавляет загруженный в класс мувиклип по заданным координатам. Создавайте экземпляры этого класса. Сколько хотите, с помощью массива и цикла.
Я все еще до конца не понимаю суть вопроса. Что вы хотите сделать, может мне проще будет понять и посоветовать?

Добавлено через 1 минуту
Кстати, дело не в примерах, а в знаниях и умении их применять. Для копировани клипов на фон, к примеру водяной знак или же там снежинки - там все можно найти. Готовые примеры есть или в гугле, или вы сами делаете с помощью данных вам инструментов (в этом случае знания АС3 и ООП из Колина Мука) то, что задумали.

Fazer 20.08.2012 00:33

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

Wolsh 20.08.2012 01:02

Вы замостить фон что ли хотите?
Если мувиклип тайла (одной плитки) не анимированный, то проще снять с него битмапдату и нарисовать программно прямоугольник на весь размер фона, установив битмапдату как заливку — фон.graphics.beginBitmapFill(tile.bitmapdata);
Если клип анимированный, то как ни крути Вам придется создавать в цикле столько экземпляров, сколько потребуется чтобы замостить фон.
(ах да, можно и с заливкой, перерисовывая битмапдату на каждый кадр мувиклипа, не придется делать сотню клипов).

Fazer 20.08.2012 01:19

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

Wolsh 20.08.2012 01:29

Проблема-то в чем состоит? Вы не знаете, как что сделать? Создать еще один экземпляр? Назначить ему координаты? Помогите понять вопрос.

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

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

Добавлено через 33 минуты
Код AS3:

package 
{
        import flash.display.DisplayObject;
        import flash.display.Sprite;
        import flash.events.Event;
 
        public class Main extends Sprite
        {
                public function Main():void
                {
                        addClip(Clip, 10, 10, 30, 30, 50, 50, 70, 70);
                }
 
                private function addClip(clip:Class, ...coords):void
                {
                        var length:uint = coords.length;
                        if (length % 2 != 0) throw new Error("Получено непарное число координат");
                        for (var i:uint = 0; i < length; i += 2)
                        {
                                var newClip:DisplayObject = this.addChild(new Clip());
                                newClip.x = coords[i];
                                newClip.y = coords[i + 1];
                        }
                }
        }
}


Fazer 20.08.2012 03:33

Wolsh, спасибо огромное, то что нужно!


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

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