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

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

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

Регистрация: Aug 2003
Адрес: Москва
Сообщений: 449
Отправить сообщение для ВАРАН с помощью ICQ
Я вот знаю пример с методом split(). Один дядька переписал его для AS2 и он стал работать намного шустрее чем родной flashовый метод. Это ещё на MX было.

Добавлено через 1 час 37 минут
может мне кто нибудь помоч натянуть вот на это текстуру

Добавлено через 1 час 38 минут
Код AS1/AS2:
import flash.display.BitmapData;
import flash.geom.Matrix;
import flash.filters.ColorMatrixFilter;
 
var focalLength = 400;
var lastMouseX = lastMouseY=kX=kY=0;
//-----------------------------------------------
function create(targed) {
	this.createEmptyMovieClip(targed,2);
	this[targed].param = {x:Stage.width/2, y:Stage.height/2, z:0};
	this[targed].vertex = [{x:-100, y:-100, z:0}, {x:100, y:-100, z:0}, {x:100, y:100, z:0}, {x:-100, y:100, z:0}];
	this[targed].onPress = function() {
		MouseMove = true;
	};
	this[targed].onRelease = function() {
		MouseMove = false;
	};
	this[targed].onReleaseOutside = function() {
		MouseMove = false;
	};
 
}
function render(targed) {
	targed.clear();
	targed.beginFill(0x0000FF,30);
	for (i=0; i<targed.vertex.length; i++) {
		var scale = focalLength/(focalLength-targed.vertex[i].z);
		x = targed.vertex[i].x*scale;
		y = targed.vertex[i].y*scale;
		if (i == 0) {
			targed.moveTo(x,y);
		} else {
			targed.lineTo(x,y);
		}
	}
	//
	targed._x = targed.param.x;
	targed._y = targed.param.y;
}
 
rotateY = function (targed, degree) {
	var sin = Math.sin(degree*Math.PI/180);
	var cos = Math.cos(degree*Math.PI/180);
	for (var i = 0; i<targed.vertex.length; i++) {
		var x = cos*targed.vertex[i].x-sin*targed.vertex[i].z;
		var z = cos*targed.vertex[i].z+sin*targed.vertex[i].x;
		targed.vertex[i].z = z;
		targed.vertex[i].x = x;
	}
};
rotateX = function (targed, degree) {
	var sin = Math.sin(degree*Math.PI/180);
	var cos = Math.cos(degree*Math.PI/180);
	for (var i = 0; i<targed.vertex.length; i++) {
		var y = cos*targed.vertex[i].y-sin*targed.vertex[i].z;
		var z = cos*targed.vertex[i].z+sin*targed.vertex[i].y;
		targed.vertex[i].z = z;
		targed.vertex[i].y = y;
	}
};
create("rektangl1");
 
this.onEnterFrame = function() {
	if (MouseMove) {
		kX = this._xmouse-lastMouseX;
		kY = this._ymouse-lastMouseY;
		lastMouseX = this._xmouse;
		lastMouseY = this._ymouse;
	} else {
		lastMouseX = this._xmouse;
		lastMouseY = this._ymouse;
		kX = kY=0;
	}
	rotateY(rektangl1,-kX/2);
	rotateX(rektangl1,-kY);
	render(rektangl1);
 
};
__________________
Он манэ падмэ ХУМ!

Старый 16.01.2009, 15:36
Mur4ik вне форума Посмотреть профиль Отправить личное сообщение для Mur4ik Найти все сообщения от Mur4ik
  № 12  
Ответить с цитированием
Mur4ik
ветеран форума

Регистрация: Sep 2008
Сообщений: 717
Записей в блоге: 4
Отправить сообщение для Mur4ik с помощью ICQ
Может
В аттаче, собственно, Ваш же код но уже с текстуркой.
Непугайтесь, немного изменил и оптимизировал Ваш код (без обид), но сильно не вникал... думаю можно еще немного ускорить просчеты.
Вложения
Тип файла: rar TextureMapping.rar (43.5 Кб, 55 просмотров)
__________________
trace("Остановите Землю, я сойду!!!");

Старый 16.01.2009, 19:07
ВАРАН вне форума Посмотреть профиль Отправить личное сообщение для ВАРАН Найти все сообщения от ВАРАН
  № 13  
Ответить с цитированием
ВАРАН
 
Аватар для ВАРАН

Регистрация: Aug 2003
Адрес: Москва
Сообщений: 449
Отправить сообщение для ВАРАН с помощью ICQ
О! Зур рахмет. Что по нашему означает дословно - большое спасибо. А что void реально ускоряет вычисление?
__________________
Он манэ падмэ ХУМ!

Старый 17.01.2009, 00:47
Mur4ik вне форума Посмотреть профиль Отправить личное сообщение для Mur4ik Найти все сообщения от Mur4ik
  № 14  
Ответить с цитированием
Mur4ik
ветеран форума

Регистрация: Sep 2008
Сообщений: 717
Записей в блоге: 4
Отправить сообщение для Mur4ik с помощью ICQ
Кто то тут говорил что строгая типизация ускоряет выполнение, но в данном случае это просто уже привычка )
Да и плюс есть некие правила хорошего тона в программировании.
__________________
trace("Остановите Землю, я сойду!!!");


Последний раз редактировалось Mur4ik; 17.01.2009 в 00:50.
Создать новую тему Ответ Часовой пояс GMT +4, время: 00:00.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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