Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Увеличение (http://www.flasher.ru/forum/showthread.php?t=105434)

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
Блин. Да я знаю как задать!! Мне математическую формулу нужно..

что за формулу такую поподробней вырожайся

FL2006 18.12.2007 17:26

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

Rewers 18.12.2007 20:50

Вложений: 1
Цитата:

Сообщение от FL2006
Про точку регистрации. Она расположена по цетру, но всё равно отчет идет от левого вехнего края..

Можно с импровизировать просто в точки регистрации выстовляеш
правому нижнему углу идвигаешь по игрику в низ одновремо выравнивая к цетру X должно получиться если есть пример выложи

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

olexandr 18.12.2007 23:04

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

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

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

olexandr 20.12.2007 15:16

ниже восьмого сохранить не смогу
там девятая версия

FL2006 20.12.2007 20:12

ну сохрани в 8

olexandr 20.12.2007 22:50

ответ
 
Вложений: 1
вот сохранил в восьмерке

nyctota 21.12.2007 12:51

Цитата:

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


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

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