Показать сообщение отдельно
Старый 21.02.2011, 21:45
koceg вне форума Посмотреть профиль Отправить личное сообщение для koceg Найти все сообщения от koceg
  № 1  
Ответить с цитированием
koceg

Регистрация: Feb 2011
Сообщений: 2
По умолчанию Создание клипов и текстовых полей внутри новых клипов и управление ими

Здравствуйте! Надеюсь, вы мне поможете с решением небольшой проблемы.
В общем и целом суть того, что я хочу сделать следующая:
1. На пустой сцене через цикл создается новый клип1
2. Внутри каждого из этих клипов1 создается рэндомное(от 2 до 5 включительно) количество клипов2, в которых рисуются фигуры, масштабирующиеся в соответствии со шкалой из массива1.
3. Внутри каждого из клипов1 создается текстовое поле с текстом из массива2.
4. Текстовому полю присваивается координата y на основании количества нарисованных клипов2 (то есть, если клипов2 в клипе1 4 штуки, то значение y одно, а если 3, то другое).
5. Клип1 вместе со всем содержимым, включая текстовое поле поворачивается вокруг своего центра на количество градусов из массива3.
6. Операции 1-5 повторяются еще 5 раз.

Часть, которая касается текствого поля никак мне не дается - то создается только одно, то все 6, но текст есть только в первом... Словом, в коде есть непонятные места. Помогите мне, пожалуйста, разобраться, что к чему. Важно, естественно не только увидеть решение проблемы, но и понять почему оно является решением. =)

Мой код:

Код AS3:
var segment:Array = ["service","calc","online","adress","portfolio","about"];
var dummy:Array = [0,1,2,3,4,5];
var colorSet:Array = [[0xc13d39,0xd23137,0xf34b31,0xff6e35,0xff8c3c],[0xff850f,0xff9909,0xffaa01,0xffbe00,0xffde1f],[0x62a400,0x82e626,0xc8ff64,0xe1ff96,0xfaffc8],[0x323468,0x4b4d89,0x5a6397,0x7f7fd5,0x9191f2],[0x005c94,0x0089a3,0x39b6b2,0x70e0bc,0xa4fcd6],[0xa20058,0xb32065,0xb32f6d,0xb44278,0xd45996]];
var partScale:Array = [1,0.66,0.5,0.33,0.2];
var segmentRotation:Array = [0,-60,-120,-180,-240,-300];
var buttonText:Array = ["Текст1","Текст2","Текст3","Текст4","Текст5","Текст6"];
var buttonTxtPosition:Array = new Array();
 
for (var i:int = 0; i<6; i++)
{
	var segmentName:MovieClip = new MovieClip();
	segmentName.name = segment[i];
	addChild(segmentName);
 
	segmentName.x = stage.stageWidth / 2;
	segmentName.y = stage.stageHeight / 2;
	segmentName.rotation = segmentRotation[i];
 
	var RND:int = Math.round(Math.random() * 3) + 2;
	buttonTxtPosition[i] = RND;
 
	var buttonTxt:TextField = new TextField();
	buttonTxt.name = dummy[i];
	segmentName.addChild(buttonTxt);
	buttonTxt.type = TextFieldType.DYNAMIC;
	buttonTxt.textColor = 0x777777;
	buttonTxt.autoSize = "center";
	buttonTxt.selectable = false;
	buttonTxt.text = buttonText[i];
 
	for (var p:int = 5-RND; p<5; p++)
	{
 *var pieceName:Sprite = new Sprite();
 *pieceName.name = dummy[p];
 *segmentName.addChild(pieceName);
 *pieceName.graphics.beginFill(colorSet[i][p], 1);
 *pieceName.graphics.lineStyle(1, 0x000000, 0);
 *pieceName.graphics.moveTo(0, 0);
 *pieceName.graphics.lineTo(-100, -173.2);
 *pieceName.graphics.curveTo(-55, -200, 0, -200);
 *pieceName.graphics.curveTo(55, -200, 100, -173.2);
 *pieceName.graphics.lineTo(0, 0);
 *pieceName.graphics.endFill();
 *pieceName.scaleX = partScale[p];
 *pieceName.scaleY = partScale[p];
	}
}