Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 04.11.2003, 11:16
Верас Ольга вне форума Посмотреть профиль Отправить личное сообщение для Верас Ольга Найти все сообщения от Верас Ольга
  № 31  
Верас Ольга
 
Аватар для Верас Ольга

Регистрация: Aug 2003
Адрес: Москва
Сообщений: 188
Имеется в виду проще, чем стряпать какую-то разорваную окружность да еще ее и вращать. Хотя может я и не права -Вам виднее - жираф большой .....

Старый 04.11.2003, 11:20
старина смерть вне форума Посмотреть профиль Найти все сообщения от старина смерть
  № 32  
старина смерть
Banned

Регистрация: Oct 2003
Сообщений: 206
Smile коротко и ясно - только так!

Цитата:
Оригинал написал(а) Верас Ольга
Ну и уж последняя наглость - вращение какого -нибудь обьекта (скажем маленького кружка) по окружности?
Я сейчас vector2d объект пишу. С помощью него можно будет любые 2d движения делать. Программно. Даже туториал пишу. Скоро на свой сайт выложу. И редизайн у меня скоро гигантский. В том числе и форума. Форум под свой сайт заточу и интегрирую его в сайт.

Старый 04.11.2003, 11:24
старина смерть вне форума Посмотреть профиль Найти все сообщения от старина смерть
  № 33  
старина смерть
Banned

Регистрация: Oct 2003
Сообщений: 206
Цитата:
Оригинал написал(а) Techmaker

this.createEmptyMovieClip("circle2",2)
with(circle1){
lineStyle(5,0x000000,100)
circle(0,0,20)
_x=Stage.width/2
_y=Stage.height/2
}
--------------------------------------------------------------------------------

А знаете ли вы тов. Алексей, что пользоваться with категорически воспрещается программистам с прямыми руками

Нужно только прямые ссылки. Хоть это и увеличивает размер, зато быстрее. Это 100%. Можешь не сомневаться.

Старый 04.11.2003, 11:27
старина смерть вне форума Посмотреть профиль Найти все сообщения от старина смерть
  № 34  
старина смерть
Banned

Регистрация: Oct 2003
Сообщений: 206
Smile бейте меня - бейте. Я вампир и становлюсь сильнее :)

Цитата:
Оригинал написал(а) Верас Ольга
И мне не очень ясно с толщиной окружности. Она что, привязана к ее радиусу?
Толщина окружности? Что-то вы ОлЬга шутите. Может толщина линии? Она не привязана к окружности ни каким образом.

Старый 04.11.2003, 12:43
Techmaker вне форума Посмотреть профиль Отправить личное сообщение для Techmaker Найти все сообщения от Techmaker
  № 35  
Techmaker
"человек"
 
Аватар для Techmaker

Регистрация: Nov 2002
Адрес: +-
Сообщений: 1,807
По умолчанию Re: с приветом из ада

Цитата:
Оригинал написал(а) старина смерть

А если толщину 0 задать? Тогда она с размером не меняется
Какой я умный, оказывается...
я знаю , но это только в случае с нулём
Цитата:
Оригинал написал(а) старина смерть
Нужно только прямые ссылки. Хоть это и увеличивает размер, зато быстрее. Это 100%. Можешь не сомневаться.
и это я знаю , но лень меня переборола
__________________
flash it

Старый 05.11.2003, 05:38
MerlinTwi вне форума Посмотреть профиль Отправить личное сообщение для MerlinTwi Посетить домашнюю страницу MerlinTwi Найти все сообщения от MerlinTwi
  № 36  
MerlinTwi
 
Аватар для MerlinTwi

Регистрация: Oct 2003
Адрес: Москва
Сообщений: 328
> А всего лишь надо - нарисовать 2 окружности разного
> диаметра. И имитировать их вращение.
Вращать окружность? а смысл?

> Мне показалось, что проще всего вращать по этим
> окружностям какой-нибудь мелкий обьект - дабы он
> перекрывал сектор окружности - и этим имитировал их
> визуальное вращение (в разные стороны).
> Имеется в виду проще, чем стряпать какую-то разорваную
> окружность да еще ее и вращать.
Если речь идет о вращении сектора, то второе как раз проще, например так:
Код:
// функция рисования окружности nuran'а
MovieClip.prototype.circle = function(x, y, r) { 
	var mas = new Array(); 
	var step = 16; 
	var angle = 360/step; 
	var rad = Math.PI/180; 
	for (var i = 0; i<=step; i++) { 
		mas[i] = new Object(); 
		mas[i].x = Math.cos(angle*rad*i)*r+x; 
		mas[i].y = Math.sin(angle*rad*i)*r+y; 
	} 
	this.moveTo(mas[0].x, mas[0].y); 
	for (var i = 0; i<step-2; i += 2) { // step-2 чтобы из окружности получился сектор
		var cx = 2*mas[i+1].x-0.5*(mas[i].x+mas[i+2].x); 
		var cy = 2*mas[i+1].y-0.5*(mas[i].y+mas[i+2].y); 
		this.curveTo(cx, cy, mas[i+2].x, mas[i+2].y); 
	} 
};

// Центр окружностей
var CircleX = 100;
var CircleY = 100;
// Радиус первой и второй
var CircleR1 = 50;
var CircleR2 = 30;

// рисуем первую
this.createEmptyMovieClip("circle1",1)
with(circle1){
	// стиль линии (толщина 1, цвет чёрный, прозрачность 0%)
	lineStyle(1,0x000000,100)
	// запускаем функцию рисования окружности
	circle(0,0,CircleR1)
	// распологаем мув в указанные X,Y
	_x=CircleX
	_y=CircleY
}
// делаем вращение
this.circle1.onEnterFrame = function() {
	this._rotation += 2;
}

// Рисуем вторую
this.createEmptyMovieClip("circle2",2)
with(circle2){
	// стиль линии (толщина 2, цвет красный, прозрачность 0%)
	lineStyle(2,0xFF0000,100)
	// запускаем функцию рисования окружности
	circle(0,0,CircleR2)
	// распологаем мув в указанные X,Y
	_x=CircleX
	_y=CircleY
}

// делаем вращение
this.circle2.onEnterFrame = function() {
	this._rotation -= 4;
}
__________________
Создатель: Бойцовский клуб | TimeZero | Sky2Fly
Я возьму сам.

Старый 05.11.2003, 13:18
Верас Ольга вне форума Посмотреть профиль Отправить личное сообщение для Верас Ольга Найти все сообщения от Верас Ольга
  № 37  
Верас Ольга
 
Аватар для Верас Ольга

Регистрация: Aug 2003
Адрес: Москва
Сообщений: 188
ЩАс Бум Пробовать

Старый 05.11.2003, 18:46
Верас Ольга вне форума Посмотреть профиль Отправить личное сообщение для Верас Ольга Найти все сообщения от Верас Ольга
  № 38  
Верас Ольга
 
Аватар для Верас Ольга

Регистрация: Aug 2003
Адрес: Москва
Сообщений: 188
Все работает замечательно. Но хотелось бы задать еще один дурацкий вопрос: Как регулировать величину сектора разрыва
на окружности? .
И все-таки еще: вращение MovieClip по заданному радиусу или эллипсоиду.
И вообще какого эти орлы из Macromedia не могли сделать транслятор кода на базовые функции рисования. Ведь один черт все эти фунции реализовали в процессе написания кода fLASH. Что не могли написать конвертор в AS. Сильно бы облегчили жизнь пользователям (особенно начинающим).
Ведь все-таки графический редактор у них уж очень убогий.
Шаг сетки не задаш какой нужен. И море всего остального. Содрали бы реализацию графических функции у ACAD или PCAD.

Старый 05.11.2003, 23:02
васёк вне форума Посмотреть профиль Отправить личное сообщение для васёк Посетить домашнюю страницу васёк Найти все сообщения от васёк
  № 39  
васёк

Регистрация: Aug 2003
Адрес: иркутск
Сообщений: 284
Cool хе-хе

надо взять циркуль во флеш и нариовать круг !
тебе это зачем ?
__________________
я не псих, матрицы нет!

Старый 06.11.2003, 09:19
старина смерть вне форума Посмотреть профиль Найти все сообщения от старина смерть
  № 40  
старина смерть
Banned

Регистрация: Oct 2003
Сообщений: 206
Smile i'm the best flash developerzzzzzz

MovieClip.prototype.circle = function(x, y, r) {
var mas = new Array();
var step = 16;
var angle = 360/step;
var rad = Math.PI/180;
for (var i = 0; i<=step; i++) {
mas[i] = new Object();
mas[i].x = Math.cos(angle*rad*i)*r+x;
mas[i].y = Math.sin(angle*rad*i)*r+y;
}
this.moveTo(mas[0].x, mas[0].y);
for (var i = 0; i<step; i += 2) {
// curveThreeTo
var cx = 2*mas[i+1].x-0.5*(mas[i].x+mas[i+2].x);
var cy = 2*mas[i+1].y-0.5*(mas[i].y+mas[i+2].y);
this.curveTo(cx, cy, mas[i+2].x, mas[i+2].y);
}
};

_root.onLoad = function() {
fscommand("allowscale", false);
cnx = Stage.width/2;
cny = Stage.height/2;
// precalculations
rad = Math.PI/180;
radius = 100;
dot_radius = 20;
preRadius = radius-dot_radius;
preRad = 180*rad;
// axises
_root.createEmptyMovieClip("back", 1);
back.lineStyle(0, 0xFF0000, 100);
back.moveTo(cnx, cny-cny/1.1);
back.lineTo(cnx, cny+cny/1.1);
back.lineStyle(0, 0x00FF00, 100);
back.moveTo(cnx-cnx/1.1, cny);
back.lineTo(cnx+cnx/1.1, cny);
// back circle
_root.createEmptyMovieClip("bg", 2);
bg.lineStyle(0, 0xFFFFFF, 100);
bg.circle(0, 0, 100);
bg._x = cnx;
bg._y = cny;
// dot
_root.createEmptyMovieClip("dot", 3);
dot.beginFill(0x0000FF, 100);
dot.circle(0, 0, dot_radius);
dot._x = cnx;
dot._y = cny;
dot.endFill();
// text
_root.createTextField("text", 4, cnx+5, cny, 300, 20);
format = new TextFormat();
format.color = 0xFFFFFF;
format.font = "Verdana";
format.size = 14;
text.text = "click and move your mouse";
text.setTextFormat(format);
};

// ######################################################
// -- © 2003 Grigory A. Ryabov.
// -- http://www.flash.plux.ru
// -- Techmaker: Aleksey Shreider 8=)
// ######################################################

_root.onMouseDown = function() {
start = 1;
};

_root.onMouseUp = function() {
start = 0;
};

_root.onEnterFrame = function() {
var dx = cnx-_xmouse;
var dy = cny-_ymouse;
if (Math.sqrt(dx*dx+dy*dy)<=preRadius) {
dot._x = _xmouse;
dot._y = _ymouse;
} else {
angle = Math.atan2(dy, dx)-preRad;
dot._x = Math.cos(angle)*preRadius+cnx;
dot._y = Math.sin(angle)*preRadius+cny;
}
if (start) {
var dx = cnx-_xmouse;
var dy = cny-_ymouse;
radius = Math.sqrt(dx*dx+dy*dy);
preRadius = radius-dot_radius;
bg._xscale = bg._yscale=radius;
}
};

Создать новую тему   Часовой пояс GMT +4, время: 17:44.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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