Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   как пр. рисовать в разных кадрах мувика (http://www.flasher.ru/forum/showthread.php?t=50568)

@leksey 27.10.2003 01:52

как пр. рисовать в разных кадрах мувика
 
this._cursor.clear();
this._cursor.lineStyle(0,this.plcolor,this.ptransparensy+15);
this._cursor.beginFill(this.pcolor,this.ptransparensy);
this._cursor.moveTo( 0, 0 );
this._cursor.lineTo( this.pwidth, 0 );
this._cursor.lineTo( this.pwidth, 30 );
this._cursor.lineTo( 0, 30 );
this._cursor.lineTo( 0, 0 );
this._cursor.endFill();

Это я типа рисую, а вот как нарисовать что-то во втором кадре this._cursor. Всякие там Goto не канают затирается все к черту. Варианты создать пустые клипы в редакторе, а потом в них рисовать не подходят. Нужно именно перейти в кадр и там нарисовать что-то, потом перейти в следующий и там нарисовать. Кейфреймы там уже есть... Ну... нужна помощь!!!

sergwizard 27.10.2003 03:57

Ну, вообще-то, ничего не затирается, если не применять this._cursor.clear().
А можно и так:
Я - для простоты - заменил твои переменные.
Код:

function drawSomethingElse(){
this._cursor.lineStyle(1,0xFF0000,90);
this._cursor.beginFill(0xFF0000,90);
this._cursor.moveTo( 50, 50 );
this._cursor.lineTo( 170, 50 );
this._cursor.lineTo( 170, 80 );
this._cursor.lineTo( 50, 80 );
this._cursor.lineTo( 50, 50 );
this._cursor.endFill();
}
this._cursor.clear();
this._cursor.lineStyle(1,0x0000FF,90);
this._cursor.beginFill(0x0000FF,90);
this._cursor.moveTo( 0, 0 );
this._cursor.lineTo( 90, 0 );
this._cursor.lineTo( 90, 30 );
this._cursor.lineTo( 0, 30 );
this._cursor.lineTo( 0, 0 );
this._cursor.endFill();

this.onMouseDown = function(){
        _cursor.gotoAndStop(2);
        drawSomethingElse();
}


@leksey 27.10.2003 23:01

Понимаешь, мне нужно програмно нарисовать кнопку, вернее все ее состояния - это три кадра (up, down, over)

// Кнопка
this._b1._button.clear();
this._b1._button.lineStyle(0,this.plcolor,this.ptransparensy+15);
this._b1._button.beginFill(0xFFFFFF,this.ptransparensy);
this._b1._button.moveTo( 5, 5 );
this._b1._button.lineTo( this.pwidth-5, 5 );
this._b1._button.lineTo( this.pwidth-5, 25 );
this._b1._button.lineTo( 5, 25 );
this._b1._button.lineTo( 5, 5 );
this._b1._button.endFill();

почистили мувик и нарисовали прямоугольник
теперь перейдем в кадр 2 и нарисуем такойже, но цвет другой

this._b1._button.gotoAndStop(2);
this._b1._button.lineStyle(0,this.plcolor,this.ptransparensy+15);
this._b1._button.beginFill(this.pcolor,this.ptransparensy);
this._b1._button.moveTo( 5, 5 );
this._b1._button.lineTo( this.pwidth-5, 5 );
this._b1._button.lineTo( this.pwidth-5, 25 );
this._b1._button.lineTo( 5, 25 );
this._b1._button.lineTo( 5, 5 );
this._b1._button.endFill();

вернемся в кадр 1
this._b1._button.gotoAndStop(1);

Так вот, у медя должно быть 2 прорисованых кадра и я должен видить кадр 1, тоесть белый прямоугольник. Я вижу только прямоуголиник ресуемый второй частью кода и видимо он в кадре 1, а не 2. Кадры в мувике я создал предварительно. Ну и как быть?.. И вообще как создать мувик, с неодним ключевым кадром, програмно и рисовать в них.

@leksey 27.10.2003 23:03

Это то же, что и предложил ты, но без событий, и оно не работает.

sergwizard 28.10.2003 00:33

Так бы и сказал, что ты хочешь нарисовать кнопку. Ее можно и без подготовленного МС нарисовать. Ну вот так примерно:
Код:

ovieClip.prototype.behav = function(){
        myColor =new Color(this);
        this.onRelease = this.onReleaseOutside = function(){
        myColor.setRGB(0xFF0000);
}
this.onRollOver = function(){
        myColor.setRGB(0xFF0000);
}
this.onRollOut = function(){
        myColor.setRGB(0xD900D0);
}
this.onPress = function(){
        myColor.setRGB(0xFF00FF);
}
}
_root.createEmptyMovieClip("shape",1)
with(_root.shape){
        lineStyle(1,0xCCCCCC,100);
        lineTo(60,0);
        lineStyle(1,0x000000,100);
        lineTo(60,20);
        lineStyle(1,0x000000,100);
        lineTo(0,20);
        lineStyle(1,0xCCCCCC,100);
        lineTo(0,0);
        createEmptyMovieClip("but",0);
with(_root.shape.but){
        beginFill(0xD900D0,100);
        moveTo(.5,.5)
        lineTo(59.5,.5);
        lineTo(59.5,19.5);
        lineTo(.5,19.5);
        lineTo(.5,.5);
        endFill();
        behav();
}
}
_root.shape._x = 200;
_root.shape._y = 100;

Я использую прототипы, так как думаю, что ты не одну кнопку будешь рисовать...

@leksey 28.10.2003 22:53

Спасибо, интересное решение с подменой цвета.
Вот только как же с переходами в кадры? Просто, это может пригодиться потом... И еще, вчера, делал, что-то вроде того что ты предложил (только с постоянной перерисовкой). Возник вопрос, и в документации не нашел ответа - Как? при рисовании програмно выставить стиль линий. Пунктир и тому подобное... Еще раз спасибо - ценю чужое время, впринципе, как и свое ;)

sergwizard 28.10.2003 23:50

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

Вот только как же с переходами в кадры?
А зачем тебе нужны переходы в кадры? Если ты все делаешь программно, то и порядок иполнения клипов, функций и т.д тоже можно делать посредством скрипта. Вот посмотри классный(!!!) пример использования только кода для создания анимированного мувика. Автор У.Брэдберри. Фантастика!!!
2. Программно можно выставлять только толщину и цвет линии. Для пунктиров и т.д. надо писать функции и прототипы. Это - в принципе - делается.

@leksey 29.10.2003 00:22

Есть у меня такой исходник - сделано хорошо. Зачем нужен переход в кадры? Да просто думал может когда либо анимационный редактор придеться делать, совместимый со всеми версиями флеш. Так было бы неплохо создать модель (что бы руки ноги переставлять драгендропом, голову поворачивать, или что-то в этом роде). После работы скрипта получить простейший мувик с ключевыми кадрами. Этакий вариант слайдов или спрайтов. Применение этому найти можно, если подумать. А насчет У.Б. я вот всегда думал он эти модели руками рисует и оцифровует??? Что-то мне кажется, что при такой работке тебя вши сьедят живьем и зрение сядет, шучу. Так может ПО существует, которое вектор так вот по коорденатам растасовует? Да вот еще... может знаешь? Чем можно видио в вектор рендерить? Можно конечно Адоб Стримлайном или Корел Трайсер, но там каждый кадр в отдельности придеться.

sergwizard 29.10.2003 03:22

Цитата:

Применение этому найти можно, если подумать.
У меня другой подход: СНАЧАЛА понять, для чего это нужно, - и уже только ПОТОМ делать. Пока я не вижу, для чего это нужно. И идеи о анимационном редакторе, совместимом со всеми версиями флеш не понимаю.

Цитата:

Так может ПО существует, которое вектор так вот по коорденатам растасовует?
ПО не знаю, сам я использую возможности Flash.
1. Нарисовал символ, выделил, залез в меню -> File ->Export Image -> выбрал формат *.ai – Adobe Illustrator. Сгенерил, потом открыл в текстовом редакторе (у меня UltraEdit). Вот они родные цифирки-координаты.
2. Как-то Max Chubin поделился со мной маленькой утилиткой, самим им нарисованной во флэше. Смысл такой: ты рисуешь мышкой, а координаты рисунка автоматом появляются в текстовом поле. Насобирал сколько надо, - и используй.
3. О видео ничего сказать не могу: - не знаю.


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

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