У меня есть MC в анимации AS3, и я хочу увеличить его высоту снизу вверх, что означало бы, что точка регистрации должна быть внизу MC и центром ширины (горизонтальный центр).
Как я могу это сделать?
Спасибо.
У меня есть MC в анимации AS3, и я хочу увеличить его высоту снизу вверх, что означало бы, что точка регистрации должна быть внизу MC и центром ширины (горизонтальный центр).
Как я могу это сделать?
Спасибо.
ах, старая проблема с точкой регистрации. :)
Однажды я увидел небольшой настраиваемый класс, который позволил вам изменить точку регистрации вашего экранного объекта, как вы можете просто сделать во Flash Authoring. погуглите, если вам интересно.
решение довольно простое. точка регистрации экранных объектов назначается в зависимости от того, как объект добавляется в список отображения. вам просто нужно принять это во внимание, когда вы добавляете экранный объект в список отображения, а затем настраиваете небольшую математику, чтобы изменить точку регистрации:
//Set up rect's width and height
var rectWidth:uint = 200;
var rectHeight:uint = 100;
//Assign registration point (TL, TC, TR, CL, C, CR, BL, BC, BR = top, center, bottom, left, right)
var registration:String = "C"
//Assign rect's X and Y properties
var rectX:int;
var rectY:int;
switch (registration)
{
case "TL": rectX = 0;
rectY = 0;
break;
case "TC": rectX = -rectWidth / 2;
rectY = 0;
break;
case "TR": rectX = -rectWidth;
rectY = 0;
break;
case "CL": rectX = 0;
rectY = -rectHeight / 2;
break;
case "C": rectX = -rectWidth / 2;
rectY = -rectHeight / 2;
break;
case "CR": rectX = -rectWidth;
rectY = -rectHeight / 2;
break;
case "BL": rectX = 0;
rectY = -rectHeight;
break;
case "BC": rectX = -rectWidth / 2;
rectY = -rectHeight;
break;
case "BR": rectX = -rectWidth;
rectY = -rectHeight;
}
//Draw the rect
var rect:Sprite = new Sprite();
rect.graphics.beginFill(0xFF0000);
rect.graphics.drawRect(rectX, rectY, rectWidth, rectHeight);
rect.graphics.endFill();
Моя рекомендация по поводу старой проблемы с точкой регистрации, несколько вещей ...
Если вы ДОЛЖНЫ использовать AS3 для его динамического изменения ...
var rect: Rectangle = bitmapData.getColorBoundsRect (0xff000000, 0, false); yourCroppedBitmapData.copyPixels (bitmapData, rect, ...);
... когда у вас есть надежная точка регистрации в верхнем левом углу, вы можете выполнить математические вычисления, чтобы разместить это Bitmap в контейнере Sprite (как указано выше), чтобы масштабировать его вверх.
Или ... нанять обезьян тоже было бы весело: P
Но да, это некоторые из альтернативных способов перестановки символов.