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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 13.11.2001, 17:40
believe вне форума Посмотреть профиль Отправить личное сообщение для believe Найти все сообщения от believe
  № 1  
believe
 
Аватар для believe

Регистрация: May 2001
Адрес: Санкт-Петербург
Сообщений: 69
По умолчанию 2Artem Melnikov и понимающие :) Запара ВЕЛИКА

В топике о панораме 16-09 от ManOwaR господином Артемом Мельниковым был дан адрес с примером. Так вот, с тех пор он мне покоя и не дает. Господа продвинутые флешеры, разжуйте пожалуйста скрипт (работу функции) из этого файла. Суть проиходящего - движение мувиков, организованное по кругу (псевдопанорама) ускоряется в зависимости от движения мыши. Вот файл и тот самый его код:

movieclip.prototype.move = function(xmitte, ymitte, radiusx, radiusy) {
if (_y>ymitte) {
distance = _y-ymitte;
} else {
distance = ymitte-_y;
}
//
if (_root._ymouse<ymitte) {
ypos = ymitte-_root._ymouse;
} else {
ypos = _root._ymouse-ymitte;
}
//
speed = ypos/20;
if (ypos>100) {
speed = 5;
}
//
if (_root._ymouse<ymitte) {
if (winkel<(360-speed)) {
winkel += speed;
} else {
winkel = 0;
}
} else {
if (winkel>(-360+speed)) {
winkel -= speed;
} else {
winkel = 0;
}
}
//
if (winkel>0 && winkel<=180) {
_xscale = 100-(distance/10*4);
_yscale = 100-(distance/10*4);
_alpha = 100-(distance/10*3);
} else if (winkel>180 && winkel<=360 || winkel<0 && winkel>= -180) {
_xscale = 60-((100-distance)/10*3);
_yscale = 60-((100-distance)/10*3);
_alpha = 50-((100-distance)/10*5)
} else if (winkel>-360 && winkel<=-90) {
_xscale = 100-(distance/10*4);
_yscale = 100-(distance/10*4);
_alpha = 100-(distance/10*3);
}
//
_x = xmitte+Math.sin(winkel*Math.PI/180)*radiusx;
_y = ymitte-Math.cos(winkel*Math.PI/180)*radiusy;
}

Старый 14.11.2001, 16:59
believe вне форума Посмотреть профиль Отправить личное сообщение для believe Найти все сообщения от believe
  № 2  
believe
 
Аватар для believe

Регистрация: May 2001
Адрес: Санкт-Петербург
Сообщений: 69
Никто не знает ... Жаль Мучения продолжаются

Старый 14.11.2001, 17:11
believe вне форума Посмотреть профиль Отправить личное сообщение для believe Найти все сообщения от believe
  № 3  
believe
 
Аватар для believe

Регистрация: May 2001
Адрес: Санкт-Петербург
Сообщений: 69
Пропавший файл
Вложения
Тип файла: zip rotate.zip (19.2 Кб, 104 просмотров)

Старый 15.11.2001, 13:57
Artem Brigert вне форума Посмотреть профиль Найти все сообщения от Artem Brigert
  № 4  
Artem Brigert
Banned

Регистрация: Sep 2001
Сообщений: 6,162
По умолчанию :)

Ja poprobuju tebe perewesti rasjasnenija s nemezkogo na russkij, tam w ishodnike wrode objasnjaetsja tschto k tschemu. No nemnogo posje Sorry net wremeni sejtschas

Artem

Старый 15.11.2001, 15:20
Artem Brigert вне форума Посмотреть профиль Найти все сообщения от Artem Brigert
  № 5  
Artem Brigert
Banned

Регистрация: Sep 2001
Сообщений: 6,162
По умолчанию Перевод

Привет,
Объяснений там не оказалось, но чем могу помогу.
Mitte= центр(нем)
Winkel= угол(нем)
Radius= радиус
Speed= скорость
Distance= дистанция
Может так разберёшся что к чему.

Артём

Старый 16.11.2001, 02:57
K_L вне форума Посмотреть профиль Отправить личное сообщение для K_L Найти все сообщения от K_L
  № 6  
K_L

Регистрация: Oct 2001
Адрес: De, Ratingen
Сообщений: 63
По умолчанию Quasi perevod

Poprobuem rayobrat|sja (proshu proshtshenija ya latinicu... )

movieclip.prototype.move = function(xmitte, ymitte, radiusx, radiusy) {
// Perevod: Otnyne vse ob''ekty tipa MovieClip budut obladat’
// takzhe i metodom "move()", prinimajushtshim parametry:
// xmitte, ymitte, radiusx, radiusy;
// intuitivno predpolozhim, chto xmitte i ymitte– x/y-koordinaty
// nekoego centra, otnositel’no kotorogo budet idti vrashtshenie,
// radiusx, radiusy - parametry vrashtshenija, sm. nizhe.
// Sut’ metoda "move" takova
if (_y>ymitte) {
// esli y-koord. ob’’ekta bol’she y-koord. centra vrashtshenija,
// to sozdaem peremennuju distance,
distance = _y-ymitte;
// ravnuju raznice mezhdu y-koord. ob’’ekta i y-koord. etogo cenrta.
} else {
// v protivnom sluchae (esli y-koordinata ob’’ekta men’she
// ili ravna y-koordinate centra) distance vyschityvaetsja naoborot
// i vse ravno ostaetsja >=0. Distance, takim obr.,
// eto rasstojanie mezhdu vertikal’nym polozheniem
// ob’’ekta tipa MovieClip
// i predpolagaemogo centra ego vrashtshenija
distance = ymitte-_y;
}

if (_root._ymouse<ymitte) {
// esli vertikal’noe polozhenie myshi men’she
// vertikal’nogo polozhenija
// centra (to est’ mysh’ nachoditsja vyshe),
ypos = ymitte-_root._ymouse;
// sozdaem peremennuju ypos, ravnuju raznice
// mezhdu y-koord. myshi i centra vrashtshenija;
} else {
ypos = _root._ymouse-ymitte;
// etot parametr toze >=0
}
speed = ypos/20;
// peremennaja speed – tipa, skorost’
// Ravna 1/20 poluchennoj vyshe
// peremennoj ypos, t.e.: chem bol’she raznica
// mezhdu vertikal’nym
// polozheniem myshi i polozheniem centra vrashtshenija klipa,
// tem bol’she speed.
if (ypos>100) {
// No pri etom speed ne mozhet prevyshat’ 5,
// dazhe esli ypos > 100,
// t.e., po "osnovnomu" pravilu, speed dolzhen by stat’ bol’she 5.
// Takim obrasom, nachinaja s kakoj-to kriticheskoj raznicy
// po vertikali speed povyshat’sja bol’she ne budet.
speed = 5;
}
if (_root._ymouse<ymitte) {
if (winkel<(360-speed)) {
// esli mysh’ vyshe centra vrashtshenija i peremennaja winkel
// men’she (360 – speed) (a pri pervoj proverke
// winkel = 0 - sm. nizhe),
winkel += speed;
// to narastit’ znachenie peremennoj na vychislennuju
// velichinu speed.
// Winkel, kak bylo skazano, znachit "ugol".
} else {
// a esli peremennaja winkel < 360
// (t.e.: pribaviv speed + winkel mozhno poluchit’ velichinu,
// bol’shuju ili ravnuju 360),
winkel = 0;
// to obnulit’ winkel
}
} else {
// nu a esli mysh’ ne vyshe centra vrashtshenija klipa, to
if (winkel>(-360+speed)) {
// (ta zhe istorija, chto vyshe, no idet ne pribavlenie,
// a vychitanie, t.e. tipa povorot v druguju storonu).
winkel -= speed;
} else {
winkel = 0;
}
}

// Aga, vot pojavljajutsja nakonec standartnye parametry:
// _xscale, _yscale, _alpha i vstupaet v igru chisto
// "geometricheskaja" logika.
// Esli winkel nakhoditsja mezhdu ]0, 180],
if (winkel>0 && winkel<=180) {
// to: umen’shit’ linejnye razmery klipa proporcional’no distance
// (t.e. raznice mezhdu vertikal’nym polozheniem klipa
// i centra vrashtshenija)
_xscale = 100-(distance/10*4);
_yscale = 100-(distance/10*4);
// i proporcional’no zhe umenit' alphu
_alpha = 100-(distance/10*3);
} else if (winkel>180 && winkel<=360 || winkel<0 && winkel>= -180) {
// esli winkel lezhit mezhdu ]180, 360] ili [-180, 0[,
// to razmery i alpha klipa menjajutsja po drugomu pravilu:
_xscale = 60-((100-distance)/10*3);
_yscale = 60-((100-distance)/10*3);
_alpha = 50-((100-distance)/10*5)
} else if (winkel>-360 && winkel<=-90) {
// nakonec, esli winkel lezit mezhdu ]-360, -90],
// to - opjat’ kak v pervom sluchae
// (ne ponimaju, pochemu nado bylo raspisyvat’ eto otdel’no)
_xscale = 100-(distance/10*4);
_yscale = 100-(distance/10*4);
_alpha = 100-(distance/10*3);
}


// Fokus-pokus! V moem detstve eto nazyvalos’ trigonometriej.
// I s tekh por, uvy, moi znanija v etoj oblasti
// na etom i zakanchivajutsja ...$(
// Po krajnej mere, nakonec-to pojavljajutsja preslovutye
// radiusx i radiusy.
// Polozhenie objekta po vertikali i po gorizontali privjazyvaetsja
// k etim parametram i k polozheniju uslovnogo centra povorota.
_x = xmitte+Math.sin(winkel*Math.PI/180)*radiusx;
_y = ymitte-Math.cos(winkel*Math.PI/180)*radiusy;
}


V tret’em kadre osnovnogo fil’ma sgruppirovano 18 klipov: eto kopii objekta "textfield" ("tekstovoe pole") iz biblioteki. (Po suti, eto prosto dinamicheskij tekst "text" v ramke.)
Dlja kazhdogo iz etikh klipov propisany actions:

onClipEvent (load) {
this.text = "lunatic"
// ili drugoe imja
winkel = 0;
// statrtovyj ugol
}
onClipEvent (enterFrame) {
move(364, 199, 0, 100);
// kazhdyj raz pri pojavlenii klipa s tekstom vyzyvaetsja metod
// move(364, 199, 0, 100).
// Etot metod, sobstvenno, kazhdyj raz ocenivaet polozhenie
// klipa na stranice i polozhenie myshi i sootvetstvenno menjaet
// koordinaty, razmery i jarkost’ klipa. Razumeetsja, dlja
// kazhdogo klipa zdes’ metod move() vyzyvaetsjas
// odnim i tem zhe naborom parametrov - chto natalkivaet
// na ochevidnuju ideju o vozmozhnoj optimizacii.
// Mozhno bylo by attachit’. Eto odnoznachno!
}

NADO BY:
1. Poeksperimentirovat' s parametrami metoda move();
2. Poprobovat' peredelat' ego dlja vrashtshenija po _gorizontali_
... da spat' khochetsja, vstavat' zavtra rano

Uspekhov!
__________________
Да и пчелы, если вдуматься...

Старый 16.11.2001, 11:45
K_L вне форума Посмотреть профиль Отправить личное сообщение для K_L Найти все сообщения от K_L
  № 7  
K_L

Регистрация: Oct 2001
Адрес: De, Ratingen
Сообщений: 63
Vazhnoe dobavlenie:
Kazhdomu "tekctovomu" muviku v tret'em kadre prisvoeno svoe startovoe znachenie winkel (0, 20, 40...):
imenno blagodarja etomu oni i stanovjatsja srazu kazhdyj na svoe mesto!!!
Eto ja uhe prospal
__________________
Да и пчелы, если вдуматься...

Старый 16.11.2001, 15:25
believe вне форума Посмотреть профиль Отправить личное сообщение для believe Найти все сообщения от believe
  № 8  
believe
 
Аватар для believe

Регистрация: May 2001
Адрес: Санкт-Петербург
Сообщений: 69
Огромный сеньк Особенно K_L (Ну очень постарался) И не лень же было Вот сижу перевариваю и, видимо, еще долго буду

Старый 16.11.2001, 16:26
K_L вне форума Посмотреть профиль Отправить личное сообщение для K_L Найти все сообщения от K_L
  № 9  
K_L

Регистрация: Oct 2001
Адрес: De, Ratingen
Сообщений: 63
__________________
Да и пчелы, если вдуматься...

Старый 16.11.2001, 17:36
K_L вне форума Посмотреть профиль Отправить личное сообщение для K_L Найти все сообщения от K_L
  № 10  
K_L

Регистрация: Oct 2001
Адрес: De, Ratingen
Сообщений: 63
Metod dejstvitel'no och. tolkovyj.
Dlja nachala, izmenim ego nemnogo (iskljuchitel'no dlja prostoty):

pervuju stroku zamenim na:

movieclip.prototype.move = function() {

xmitte=120;
ymitte=120;
radiusx=0;
radiusy=100;

(Teper' metod vyzyvaetsja bez parametrov, kotorye zhestko opredeljajutsja v nem samom.)

Sootvetstvenno na muvikakh v tret'em kadre tozhe nado pomenjat' vyzov move()-metoda: vykinut' parametry iz skobok. Teper', po krajnej mere, eksperimentirovat' s izmeneniem parametrov mozhmo centralizovanno.

Napr., posmotri, chto poluchaetsja, kogda radiusy!=0; kogda radiusx>radiusy. I chto, kogda eti znachenija umen'shajutsja/uvelichivajutsja - i t.d.

Tolkovo.

Kstati, esli ostavit' metod movie() s parametrami, to ikh mozhmo budet potom menjat'!
__________________
Да и пчелы, если вдуматься...

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

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

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


 


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


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