Форум 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=156436)

Odiss 21.05.2011 20:11

Создать фигуру мувиклипами, кодом
 
У меня есть мувиклип. Прямоугольнык, который надо с помощью кода, вывести в форме, скажем, 10х10.
Получится прямоугольник, по-больше. При этом каждому надо дать имя. Скажем первый: s1, второй s2...s55
Если кто знает как сделать - будь-те добры: ответ в студию.

i.o. 21.05.2011 21:03

оно?
Код AS3:

var мойПрямоугольник:Sprite = создатьПрямоугольник(10.0, 10.0);
мойПрямоугольник.name = "s1";
this.addChild(мойПрямоугольник);
 
 
function создатьПрямоугольник(ширина:Number=10.0, высота:Number=10.0) : Sprite
{
        var п:Sprite = new Sprite();
        п.graphics.lineStyle(0.25, 0x0000FF, 1.0);
        п.graphics.beginFill(0xFF0000, 1.0);
        п.graphics.drawRect(0.0, 0.0, ширина, высота);
        п.graphics.endFill();
 
        return п;
}

Добавлено через 4 минуты
блин, как доходчиво наверное получилось...)

Odiss 22.05.2011 13:10

Благодарю, но как именно наплодить их? Програмно я смог создать, проблема именно в "растираживании".

t4arty 22.05.2011 14:18

через цикл их растиражируйте

Wolsh 22.05.2011 16:35

Код AS3:

private function retile(tileContainer:DisplayObjectContainer, tileClass:Class, columns:uint, strokes:uint, spaceX:Number = 0, spaceY:Number = 0):Array
{
        var arr:Array = new Array(strokes);
        for (var s:uint = 0; s < strokes; s++)
        {
                arr[s] = new Array(columns)
                for (var c:uint = 0; c < columns; c++)
                {
                        var tile:DisplayObjectnew tileClass() as DisplayObject;
                        arr[s][c] = tile;
                        tileContainer.addChild(tile);
                        tile.x = (tile.width + spaceX) * c;
                        tile.y = (tile.height + spaceY) * s;
                }
        }
        return arr;
}

Использование - допустим класс мувика, которым надо заполнить, называется Tile
Код AS3:

var tileContainer:Sprite = new Sprite();
addChild(tileContainer);
tileContainer.x = 50;
tileContainer.y = 50;
var tileArray:Array = retile(tileContainer, Tile, 10, 10, 1, 1);

Все экземпляры-мувики будут помещены в 2D-массив tileArray, чтобы к ним можно было обращаться, например tileArray[4][6].


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

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