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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Закрытая тема
Старый 16.03.2011, 18:52
cervicaus вне форума Посмотреть профиль Отправить личное сообщение для cervicaus Найти все сообщения от cervicaus
  № 1  
cervicaus

Регистрация: Mar 2011
Сообщений: 8
Question Калейдоскоп. Как?

Нужно сделать калейдоскоп такой же как здесь: http://flashmaste.ru/prikol/25-priko...leydoscop.html
Подскажите, пожалуйста, как?

Вот экстракт кода из swf:
hsize = 640;
vsize = 480;
masktype = 0;
purchaseurl = "http://www.goztun.com/products/kaleidoflash?from=demo";
unregtext = "Unregistered of Kaleido Flash\nGozTun.com";
registered = true;
rotate1 = true;
rotate2 = true;
rotate3 = false;
flip = true;
singleview = false;
slices = 12;
nudge = 0.009;
rotspeed1 = 0.004;
rotspeed2 = -0.003;
rotspeed3 = -0.005;
sclfact = 0;
rot = 0;
r = 0;
r2 = 0;
sh1 = 0;
sh2 = 0;
scl = 1;
function onEnterFrame()
{
if (rotate1)
{
r = r + rotspeed1;
}
if (rotate2)
{
r2 = r2 - rotspeed2;
}
if (rotate3)
{
rot = rot + rotspeed3;
}
var __reg1 = 0;
for (;
{
if (__reg1 >= slices)
{
return;
}
m.identity();
m.b = m.b + sh1;
m.c = m.c + sh2;
m.rotate(r2);
m.translate(2 * _xmouse / scl, 2 * _ymouse / scl + __reg1 * sclfact * 10);
m.rotate(r);
m.scale(scl, scl);
slice.clear();
slice.lineStyle();
slice.moveTo(0, 0);
slice.beginBitmapFill(stampImage, m);
slice.lineTo(Math.cos(angle + nudge - 1.57079632679) * diag, Math.sin(angle + nudge - 1.57079632679) * diag);
slice.lineTo(Math.cos(0 - (angle + nudge) - 1.57079632679) * diag, Math.sin(0 - (angle + nudge) - 1.57079632679) * diag);
slice.lineTo(0, 0);
slice.endFill();
m.identity();
if (flip && __reg1 % 2 == 1)
{
m.scale(-1, 1);
}
m.rotate(rot + __reg1 * angle * 2);
m.translate(hsize * 0.5, vsize * 0.5);
map.draw(slice, m, null, "normal", null, true);
++__reg1;
}
}
var angle = 3.14159265359 / slices;
var slice = createEmptyMovieClip("slice", 0);
slice._visible = false;
var diag = Math.sqrt(2 * hsize * hsize) * 0.62;
var map = new flash.display.BitmapData(hsize, vsize, true, 0);
var mapHolder = createEmptyMovieClip("mapHolder", 1);
var code;
mapHolder.attachBitmap(map, 0);
var image = flash.display.BitmapData.loadBitmap("image");
var stampImage = new flash.display.BitmapData(image.width, image.height, false);
stampImage.draw(image, new flash.geom.Matrix(0.5, 0, 0, 0.5, 0, 0), null, "normal", null, true);
stampImage.draw(image, new flash.geom.Matrix(-0.5, 0, 0, 0.5, image.width, 0), null, "normal", null, true);
stampImage.draw(image, new flash.geom.Matrix(0.5, 0, 0, -0.5, 0, image.height), null, "normal", null, true);
stampImage.draw(image, new flash.geom.Matrix(-0.5, 0, 0, -0.5, image.width, image.height), null, "normal", null, true);
image.dispose();
var m = new flash.geom.Matrix();
if (masktype == 1)
{
this.createEmptyMovieClip("masker", 2);
_root.masker.beginFill(0);
x = 0;
y = 0;
r = hsize / 2;
_root.masker.moveTo(x, y - r);
var i = 0;
while (i <= 6.28318530718)
{
_root.masker.lineTo(x + r * Math.sin(i), y - r * Math.cos(i));
i = i + 0.0174532925199;
}
_root.masker.lineTo(x, y - r);
_root.masker.endFill();
_root.slice.setMask(_root.masker);
}
else if (masktype == 2)
{
this.createEmptyMovieClip("masker", 2);
_root.masker.beginFill(0);
x = 0;
y = 0;
r = hsize / 2;
_root.masker.moveTo(x, y + r);
var i = 0;
while (i <= 6.28318530718)
{
_root.masker.lineTo(x + r * Math.sin(i), y - r * Math.cos(i));
i = i + 2.09439510239;
}
_root.masker.lineTo(x, y - r);
_root.masker.endFill();
_root.slice.setMask(_root.masker);
}
else if (masktype == 3)
{
this.createEmptyMovieClip("masker", 2);
_root.masker.beginFill(0);
x = 0;
y = 0;
r = hsize / 2;
_root.masker.moveTo(x, y + r);
var i = 0;
while (i <= 6.28318530718)
{
_root.masker.lineTo(x + r * Math.sin(i), y - r * Math.cos(i));
i = i + 1.0471975512;
}
_root.masker.lineTo(x, y - r);
_root.masker.endFill();
_root.slice.setMask(_root.masker);
}
else if (masktype == 4)
{
this.createEmptyMovieClip("masker", 2);
_root.masker.beginFill(0);
x = 0;
y = 0;
r = hsize / 2;
_root.masker.moveTo(x, y + r);
var i = 0;
while (i <= 6.28318530718)
{
_root.masker.lineTo(x + r * Math.sin(i), y - r * Math.cos(i));
i = i + 0.785398163397;
}
_root.masker.lineTo(x, y - r);
_root.masker.endFill();
_root.slice.setMask(_root.masker);
}
if (!registered)
{
this.createTextField("unregmark", 3, 0, vsize / 2 - 25, hsize, 100);
_root.unregmark.text = unregtext;
_root.unregmark.multiline = true;
_root.unregmark.type = "static";
_root.unregmark.selectable = false;
var my_fmt = new TextFormat();
my_fmt.font = "Tahoma";
my_fmt.bold = true;
my_fmt.align = "center";
my_fmt.color = 16711680;
my_fmt.size = 24;
my_fmt.underline = true;
_root.unregmark.setTextFormat(my_fmt);
var btnObj = new Object();
btnObj.onMouseUp = function ()
{
getURL(purchaseurl, "_blank", "GET");
}
;
Mouse.addListener(btnObj);
}
Key.addListener(this);

Старый 16.03.2011, 19:15
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 2  
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Обсуждение кода полученного в результате декомпиляции запрещено.

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

Теги
actionscript , калейдоскоп
Опции темы
Опции просмотра

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

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


 


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


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