PDA

Просмотр полной версии : Динамичекая графика в клипе


turta
02.03.2006, 08:38
Вопросы к знатокам.
Как с помощью ActionScript менять местами слои?
И второй вопрос. Как нарисовать правильную
окружность? Кроме оператора Curve больше ничего нет?
Спасибо!

breez38
02.03.2006, 09:23
По первому вопросу:
Слои так таковые существуют только во время авторинга (создания), а когда создается swf - слои теряются. Flash упорядочивает мувиклипы по глубине в так называемый z-order, в котором 1 - самый нижний уровень.

Вот так можно менять местами два мувиклипа:
mc1_mc.swapDepth(mc2_mc);

По второму вопросу:
Программно - можно еще попиксельно через BitmapData окружность рисовать :) (только во Флеш 8).
А еще окружность можно инструментом нарисовать (чтоб окружность была как ты сказал "правильная", при рисовании нужно Shift нажатым держать), и как мувиклип в библиотеку записать с линкаджем, а затем где надо аттачить и масштабировать до нужных размеров.

PS Привиди пример "неправильной окружности".

KUZEN
02.03.2006, 11:34
to breez38

Первый не самый нижний уровень, самый нижний -16384 и называется он _root

trace(getDepth());

AxelRB
02.03.2006, 12:32
Ну блин... Вот сэмпл из хелпа по АС, как окружности рисовать:

this.createEmptyMovieClip("circle2_mc", 2);
circle2_mc.lineStyle(0, 0x000000);
drawCircle(circle2_mc, 100, 100, 100);
function drawCircle(mc:MovieClip, x:Number, y:Number, r:Number):Void {
mc.moveTo(x+r, y);
mc.curveTo(r+x, Math.tan(Math.PI/8)*r+y, Math.sin(Math.PI/4)*r+x,
Math.sin(Math.PI/4)*r+y);
mc.curveTo(Math.tan(Math.PI/8)*r+x, r+y, x, r+y);
mc.curveTo(-Math.tan(Math.PI/8)*r+x, r+y, -Math.sin(Math.PI/4)*r+x,
Math.sin(Math.PI/4)*r+y);
mc.curveTo(-r+x, Math.tan(Math.PI/8)*r+y, -r+x, y);
mc.curveTo(-r+x, -Math.tan(Math.PI/8)*r+y, -Math.sin(Math.PI/4)*r+x,
-Math.sin(Math.PI/4)*r+y);
mc.curveTo(-Math.tan(Math.PI/8)*r+x, -r+y, x, -r+y);
mc.curveTo(Math.tan(Math.PI/8)*r+x, -r+y, Math.sin(Math.PI/4)*r+x,
-Math.sin(Math.PI/4)*r+y);
mc.curveTo(r+x, -Math.tan(Math.PI/8)*r+y, r+x, y);
}

функцию написать и курвами, курвами... %)

breez38
02.03.2006, 12:36
to Kuzen
эт я знаю, но все что меньше нуля - зарезервировано системой, у меня при использовании отрицательного числа при аттачи приколы те еще бывали :),
а для обычного человека 0 - самый нижний (но 0 тоже глючит переодически).

to AxelRB
Тегом CODE слабо пользоваться - нифига же нечитабельно.

turta
02.03.2006, 20:39
Спасибо, за дельные советы. А для дуги
такой функции нет, как для окружности?