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

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

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

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
Цитата:
Сообщение от iNils
2 Жень Шень: Даже так долгий путь. Лучше не по одному дублировать, а по геометрической прогрессии.
100% согласен. Но! Ответ был дан на реплику:
Цитата:
Сообщение от Odyssus
2Ostgur так руками и надо... Как ты делил на ровные сектора круг?
Так лучше запомнится

Добавлено:
Переделал на быструю руку из 6-го флеша (за синтаксис не бейте)
Вложения
Тип файла: rar Рисуем сектор3.rar (97.1 Кб, 63 просмотров)


Последний раз редактировалось Жень Шень; 19.10.2007 в 19:13.
Старый 19.10.2007, 21:04
kruasan вне форума Посмотреть профиль Отправить личное сообщение для kruasan Найти все сообщения от kruasan
  № 12  
Ответить с цитированием
kruasan
 
Аватар для kruasan

Регистрация: May 2004
Адрес: Kiev
Сообщений: 704
Для лоадера не надо ничего рисовать. Есть же готовое решение от Ric Ewing:
http://www.adobe.com/devnet/flash/ar...w_methods.html
В "drawWedge.as" реализована программная отрисовка сектора.

Старый 23.10.2007, 19:45
Odyssus вне форума Посмотреть профиль Отправить личное сообщение для Odyssus Найти все сообщения от Odyssus
  № 13  
Ответить с цитированием
Odyssus
[6 07.05.06]
 
Аватар для Odyssus

Регистрация: Dec 2005
Сообщений: 98
Программная отрисовка, прикольно, а как она свяжется тогда с количеством загруженных байтов? Вручную - так там переход на определенный кадр.

Извратился, сделал 100 секторов и фреймов соотв. загрузка мне не нравится!!
если поставить картинку большого обьема для проверки, тогда загрузка странно происходит (с большой не мог выложить - форум не позволяет)!
сначала быстро первый круг проматывает и на цифре 1 виснет! потом медленно второй мотает!!
Вложения
Тип файла: rar index.rar (41.4 Кб, 56 просмотров)


Последний раз редактировалось iNils; 23.10.2007 в 22:23.
Старый 23.10.2007, 20:38
†‡Paladin‡† вне форума Посмотреть профиль Отправить личное сообщение для †‡Paladin‡† Найти все сообщения от †‡Paladin‡†
  № 14  
Ответить с цитированием
†‡Paladin‡†

Регистрация: Nov 2005
Сообщений: 1,058
Распотрошил тут свой старый прелоадер. Зацените мб поможет кому.
Код:
//begin
//customize here
var barRadius = 50;
var barThickness = 20; 
var barcolor = 0xFF0000;
var barcolorAlpha = 100;
var textcolor = 0x000000;
var left_text_Preloader = "Loading:       ";
var right_text_preloader = "done";

//Creating mc`s

this.createTextField("label_txt", 3, 0, barHeight, 100, 21);
label_txt.autoSize = "left";
label_txt.selectable = false;

var label_txt_frmt:TextFormat = new TextFormat();
label_txt_frmt.color = textcolor;
label_txt_frmt.size=16;
label_txt_frmt.font='BankGothic Md BT';

this.createEmptyMovieClip("progressbar", 1);
var bar:MovieClip = progressbar.createEmptyMovieClip("bar_mc", 2);
progressbar._x = Stage.width/2-get_text_width()/2;
progressbar._y = Stage.height/2;



//functions and options
MovieClip.prototype.drawWedge = function(x, y, startAngle, arc, radius, yRadius) {
	if (arguments.length<5) {
		return;
	}
	this.moveTo(x, y);
	if (yRadius == undefined) {
		yRadius = radius;
	}
	var segAngle, theta, angle, angleMid, segs, ax, ay, bx, by, cx, cy, dx, dy, ex, ey, fx, fy;
	if (Math.abs(arc)>360) {
		arc = 360;
	}
	segs = Math.ceil(Math.abs(arc)/45);
	segAngle = arc/segs;
	theta = -(segAngle/180)*Math.PI;
	theta1 = (segAngle/180)*Math.PI;
	angle = -(startAngle/180)*Math.PI;
	donutrad = barThickness*2;
	if (segs>0) {
		ax = x+Math.cos(startAngle/180*Math.PI)*radius;
		ay = y+Math.sin(-startAngle/180*Math.PI)*yRadius;
		fx = x+Math.cos(startAngle/180*Math.PI)*(radius-donutrad);
		fy = y+Math.sin(-startAngle/180*Math.PI)*(yRadius-donutrad);
		this.moveTo(fx,fy);
		this.lineTo(ax, ay);
		for (var i = 0; i<segs; i++) {
			angle += theta;
			angleMid = angle-(theta/2);
			bx = x+Math.cos(angle)*radius;
			by = y+Math.sin(angle)*yRadius;
			cx = x+Math.cos(angleMid)*(radius/Math.cos(theta/2));
			cy = y+Math.sin(angleMid)*(yRadius/Math.cos(theta/2));
			dx = x+Math.cos(angle)*(radius-donutrad);
			dy = y+Math.sin(angle)*(yRadius-donutrad);
			ex = x+Math.cos(angleMid)*((radius-donutrad)/Math.cos(theta/2));
			ey = y+Math.sin(angleMid)*((yRadius-donutrad)/Math.cos(theta/2));
			this.curveTo(cx, cy, bx, by);
		}
			this.lineTo(dx, dy);
		for (var j = 0; j<segs; j++) {
			angle += theta1;
			angleMid = angle-(theta1/2);
			dx = x+Math.cos(angle)*(radius-donutrad);
			dy = y+Math.sin(angle)*(yRadius-donutrad);
			ex = x+Math.cos(angleMid)*((radius-donutrad)/Math.cos(theta1/2));
			ey = y+Math.sin(angleMid)*((yRadius-donutrad)/Math.cos(theta1/2));
			this.curveTo(ex, ey, dx, dy);
			}
			this.lineTo(ax,ay);
	}
};

function get_text_width() {
	percents = 99;
	label_txt.text = left_text_Preloader + percents + right_text_preloader;
	label_txt.setTextFormat(label_txt_frmt);
	return a = label_txt._width;
}

label_txt._x = Stage.width/2-get_text_width()/2;
label_txt._y = Stage.height/2;

//main function

function wedge(d_mc, arcVal) {
	d_mc.clear();
	d_mc.lineStyle(0, 0x000000);
	d_mc.beginFill(barcolor, barcolorAlpha);
	d_mc.drawWedge(get_text_width()/2, -barRadius, 0, arcVal, barRadius);
	d_mc.endFill();
}
//
arcVal= 360;

progressbar.onEnterFrame = function() {
    var percents:Number = Math.floor(_root.getBytesLoaded() / _root.getBytesTotal() * 100);
    if (!isNaN(percents)) {
			wedge(_root.progressbar.bar_mc, percents*3.6);
				}
        label_txt.text = left_text_Preloader + percents + right_text_preloader;
		label_txt.setTextFormat(label_txt_frmt);
        if (percents >= 100) {
            progressbar.onEnterFrame = undefined;
			gotoandplay(2);
        }
		if (percents == 100) {
			progressbar.bar_mc._visible = false;
			label_txt._visible = false;
		}
    }
//end

Старый 23.10.2007, 21:38
Odyssus вне форума Посмотреть профиль Отправить личное сообщение для Odyssus Найти все сообщения от Odyssus
  № 15  
Ответить с цитированием
Odyssus
[6 07.05.06]
 
Аватар для Odyssus

Регистрация: Dec 2005
Сообщений: 98
если не сложно, исходник можна посмотреть?
тут код с мувика и с фрейма написан вместе?

Старый 23.10.2007, 22:03
†‡Paladin‡† вне форума Посмотреть профиль Отправить личное сообщение для †‡Paladin‡† Найти все сообщения от †‡Paladin‡†
  № 16  
Ответить с цитированием
†‡Paladin‡†

Регистрация: Nov 2005
Сообщений: 1,058
В 1м кадре этот код. Во втором собстно контент.

Старый 24.10.2007, 05:17
kruasan вне форума Посмотреть профиль Отправить личное сообщение для kruasan Найти все сообщения от kruasan
  № 17  
Ответить с цитированием
kruasan
 
Аватар для kruasan

Регистрация: May 2004
Адрес: Kiev
Сообщений: 704
Цитата:
Сообщение от Odyssus
Программная отрисовка, прикольно, а как она свяжется тогда с количеством загруженных байтов?
Есть в функции drawWedge аргумент, соответствующий углу сектора. Угол должен быть равен 360 * bytesLoaded / bytesTotal

Старый 24.10.2007, 19:16
Odyssus вне форума Посмотреть профиль Отправить личное сообщение для Odyssus Найти все сообщения от Odyssus
  № 18  
Ответить с цитированием
Odyssus
[6 07.05.06]
 
Аватар для Odyssus

Регистрация: Dec 2005
Сообщений: 98
Еще вопрос: Чего последнее значение загруженных бит равно 98 или 99 процентов?

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

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

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


 


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


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