PDA

Просмотр полной версии : Увеличение


FL2006
15.12.2007, 20:48
Созрел вопрос. Как сделать увеличение мувиклипа, но так чтобы она уваличивалось "по центру"? Т.е. при изменении _xscale и _yscale обект увеличивался не относительно начала координат для обекта, а чтобы мувиклип расширялся какбы от центра.

Rewers
15.12.2007, 21:04
сместить по х и у цетру

mc._x +=10;
или изменить точку регистрации в мувике

FL2006
15.12.2007, 21:08
Что сместить - это понятно.. мне бы формулу.. или хотя бы логику, как это сделать..

Rewers
15.12.2007, 21:13
допусим вот так
if(this._xscale<300){
this._y-=40;
this._x +=10;

this._xscale+=10;
this._xscale=this._yscale;

}

FL2006
15.12.2007, 21:35
Блин. Да я знаю как задать!! Мне математическую формулу нужно..

Molecula
15.12.2007, 21:37
Сдвигать надо относительно контейнера.
square_mc = this.createEmptyMovieClip("square_mc", this.getNextHighestDepth());
square_mc.beginFill(0xFF0000);
square_mc.moveTo(10, 10);
square_mc.lineTo(100, 10);
square_mc.lineTo(100, 100);
square_mc.lineTo(10, 100);
square_mc.lineTo(10, 10);
square_mc.endFill();
trace(square_mc._width)
trace(square_mc._height)
ball = square_mc.createEmptyMovieClip("ball", this.getNextHighestDepth());
ball.beginFill(0x00FF00);
ball.moveTo(10, 10);
ball.lineTo(100, 10);
ball.lineTo(100, 100);
ball.lineTo(10, 100);
ball.lineTo(10, 10);
ball.endFill();
trace(ball._x)
trace(ball._y)
ball._x-=ball._parent._width/2;
ball._y-=ball._parent._height/2;
trace(ball._x)
trace(ball._y)

Rewers
15.12.2007, 21:42
Блин. Да я знаю как задать!! Мне математическую формулу нужно..
что за формулу такую поподробней вырожайся

FL2006
18.12.2007, 17:26
Про точку регистрации. Она расположена по цетру, но всё равно отчет идет от левого вехнего края..

Rewers
18.12.2007, 20:50
Про точку регистрации. Она расположена по цетру, но всё равно отчет идет от левого вехнего края..
Можно с импровизировать просто в точки регистрации выстовляеш
правому нижнему углу идвигаешь по игрику в низ одновремо выравнивая к цетру X должно получиться если есть пример выложи

Что то типа токого хош

olexandr
18.12.2007, 23:04
вот посмотри.
делал давненько - потом когда пользовался им, то находил там ошибки какие-то.
но как отправная точка думаю сойдет, если умеешь программить

nyctota
19.12.2007, 16:07
Вычисляешь, на сколько увеличился мувик: новая ширина минус старая. Делишь пополам, получаешь, на сколько "выросла" одна сторона. Сдвигаешь мувик на это значение. Сложно формулой записать?

divinus
19.12.2007, 17:24
ну как вариант, можно мувики наполнять так чтоб точка отсчета была по центру...
например

var rect:MovieClip = createRectangle(40, 40, 0xFF0000);
rect._x = Stage.width/2;
rect._y = Stage.height/2;
rect.onPress = function() {
this._xscale = this._yscale *= 4;
};
function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip {
scope = (scope == undefined) ? this : scope;
var depth:Number = scope.getNextHighestDepth();
var mc:MovieClip = scope.createEmptyMovieClip("mc_"+depth, depth);
mc.beginFill(color);
mc.moveTo(0-width/2, 0-height/2);
mc.lineTo(0-width/2, height/2);
mc.lineTo(width/2,height/2);
mc.lineTo(width/2, 0-height/2);
mc.lineTo(0-width/2, 0-height/2);
return mc;
}

FL2006
20.12.2007, 13:39
2olexandr: сохрани в старый формат, у меня 8 - не открывается.
2nyctota: Смотри пример.. не совсм ровно высчитывает.. или я что не так делал?

olexandr
20.12.2007, 15:16
ниже восьмого сохранить не смогу
там девятая версия

FL2006
20.12.2007, 20:12
ну сохрани в 8

olexandr
20.12.2007, 22:50
вот сохранил в восьмерке

nyctota
21.12.2007, 12:51
2nyctota: Смотри пример.. не совсм ровно высчитывает.. или я что не так делал?

Конечно, не так. Почему ты вычисляешь разницу длин, а координату уменьшаешь y, а не x?