Просмотр полной версии : Увеличение
Созрел вопрос. Как сделать увеличение мувиклипа, но так чтобы она уваличивалось "по центру"? Т.е. при изменении _xscale и _yscale обект увеличивался не относительно начала координат для обекта, а чтобы мувиклип расширялся какбы от центра.
сместить по х и у цетру
mc._x +=10;
или изменить точку регистрации в мувике
Что сместить - это понятно.. мне бы формулу.. или хотя бы логику, как это сделать..
допусим вот так
if(this._xscale<300){
this._y-=40;
this._x +=10;
this._xscale+=10;
this._xscale=this._yscale;
}
Блин. Да я знаю как задать!! Мне математическую формулу нужно..
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)
Блин. Да я знаю как задать!! Мне математическую формулу нужно..
что за формулу такую поподробней вырожайся
Про точку регистрации. Она расположена по цетру, но всё равно отчет идет от левого вехнего края..
Про точку регистрации. Она расположена по цетру, но всё равно отчет идет от левого вехнего края..
Можно с импровизировать просто в точки регистрации выстовляеш
правому нижнему углу идвигаешь по игрику в низ одновремо выравнивая к цетру X должно получиться если есть пример выложи
Что то типа токого хош
olexandr
18.12.2007, 23:04
вот посмотри.
делал давненько - потом когда пользовался им, то находил там ошибки какие-то.
но как отправная точка думаю сойдет, если умеешь программить
Вычисляешь, на сколько увеличился мувик: новая ширина минус старая. Делишь пополам, получаешь, на сколько "выросла" одна сторона. Сдвигаешь мувик на это значение. Сложно формулой записать?
ну как вариант, можно мувики наполнять так чтоб точка отсчета была по центру...
например
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;
}
2olexandr: сохрани в старый формат, у меня 8 - не открывается.
2nyctota: Смотри пример.. не совсм ровно высчитывает.. или я что не так делал?
olexandr
20.12.2007, 15:16
ниже восьмого сохранить не смогу
там девятая версия
olexandr
20.12.2007, 22:50
вот сохранил в восьмерке
2nyctota: Смотри пример.. не совсм ровно высчитывает.. или я что не так делал?
Конечно, не так. Почему ты вычисляешь разницу длин, а координату уменьшаешь y, а не x?
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.