PDA

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


next_Slim
10.02.2004, 13:21
Простите если повторюсь ....
есть линия нарисованая moveto и lineto скажем 10 пикселей ... програмно я могу сделать шейп скажем на 100 пикселей?
Спасибо!

next_Slim
10.02.2004, 15:47
Да гоню :( ...

onClipEvent (load) {
X = 10;
}
onClipEvent (enterFrame) {
if (X < 100) {
_root.createEmptyMovieClip("line", 1);
with (_root.line) {
lineStyle(2, 0x000000, 30);
moveTo(10, 10);
lineTo(X, 10);
}
X++;
}
}

или есть другой способ ???

Штрек
10.02.2004, 19:44
Например -

this.createEmptyMovieClip("line", 1);
this.onEnterFrame = function() {
with (line) {
_x = 100;
_y = 100;
clear();
lineStyle(2, 0xff0000, 100);
moveTo(0, 0);
lineTo(x, 0);
}
x++;
if (x == 100) {
delete this.onEnterFrame;
}
};

silin
10.02.2004, 21:53
и не обязательно двигать и чистить в каждом фрейме ;)
this.createEmptyMovieClip("line", 1);
with(line) {
_x=_y=100;
lineStyle(2, 0xff0000, 100);
var x=0;
}
line.onEnterFrame=function(){
with(this)if(x++<100) lineTo(x,0);else delete this.onEnterFrame;
}

next_Slim
11.02.2004, 11:05
Да ... спасибо!

Ну а настоящий шейп скажем из треугольника в квадрат я не сделаю? ... или сделаю но формула морфинга будет слишком сложная?
... и очевидно не универсальная :(

Штрек
11.02.2004, 16:49
Оригинал написал(а) next_Slim
Ну а настоящий шейп скажем из треугольника в квадрат я не сделаю? ... или сделаю но формула морфинга будет слишком сложная?
... и очевидно не универсальная :(

Никакой универсальности/к сожалению/.
Особой сложности не будет, но!!!!
Тут уже не раз обсуждалась сомнительная польза прогр.
рисования. Так что если особой нужды - нет,
нечего умничать, а делать надо стандартную раскадровку на тайм_лайне. ;)

Штрек
11.02.2004, 17:25
Чтоб не быть голословным сделал и так и так.
Результат -
программная трансформация -
_root.createEmptyMovieClip("mc", 99);
with (_root.mc) {
_x = 100;
_y = 100;
onEnterFrame = function () {
clear();
lineStyle(1, 0xff0000, 100);
moveTo(0, 0);
lineTo(100, 0);
lineTo(100, 40+y1);
lineTo(0, y);
lineTo(0, 0);
if (y<=100) {
y++;
}
if (y1<=60) {
y1 += .6;
}
};
}//как видишь, ничего особо сложного
весит - 289 байт
Трансформация на тайм_лайне/притом, что пришлось вставлять пару меток/, весит - 269 байт.
Вот и выбирай. :p

next_Slim
11.02.2004, 18:34
Нда ... ты абсолютно прав!
Спасибо ...

З.Ы. хотя налицо разные алгоритмы морфинга ... ;)