Ïîìîãíè íè äà íàïðàâèì Uroci.net ïî - áîãàò! Äîáàâè óðîê
Êàòåãîðèè Äðóãè óðîöè Adobe Photoshop Adobe Illustrator Adobe Flash
Adobe Fireworks DreamWeaver CSS è HTML Corel Draw Image Ready PHP SEO CMS Microsoft Windows Microsoft Word Microsoft Excel PowerPoint Microsoft Access Microsoft Publisher Linux Visual basic JavaScript Ajax 3ds Max Maya 3D C++ Sound Forge Gimp SWiSH

Ôóòóðèñòè÷íî ìåíþ ñ Flash

accorp   òðóäíîñò:    âèäÿí: 14313

 òîçè óðîê ùå âè ïîêàæà êàê äà ñè íàïðàâèòå àòðàêòèâíî ìåíþ îò âúëíîîáðàçíî ïîäðåäåíè òîï÷åòà. Ùå èçïîëçâàìå ìàëêî ìàòåìàòèêà è àêî ñòå çàïîçíàòè ñúñ ñèíóñ ùå âè å ïî-ëåñíî.
Íà òåîðèÿ:
• Ùå ïîäðåäèì 10 òîï÷åòà â ñðåäàòà íà ñöåíàòà. Íàïðàâåòå ñöåíàòà ìàëêî ïî-ãîëÿìà, â çàâèñèìîñò îò ãîëåìèíàòà íà òîï÷åòàòà.
• Çà âñÿêî òîï÷å ùå ïîñî÷èì úãúë. Íà ïðàêòèêà úãúë íå ñúùåñòâóâà (äâå ðàìåíà, åäíà äîïèðíà òî÷êà), íî ùå èïîëçâàìå ñâîéñòâà íà ñèíóñ, òàêà ÷å ùå òðÿáâà äà ðàçäåëèì 360 ãðàäóñà íà áðîÿ íà òîï÷åòàòà, çà äà ñå ðàçëè÷àâà ïîçèöèÿòà íà âñÿêî òîï÷å îò äðóãèòå.
Âåðîÿòíî ñòå âèæäàëè â ó÷åáíèöèòå ïî ìàòåìàòèêà èçîáùðàæåíèå íà òîðòà íàðÿçàíà íà ïàð÷åòà. Òîâà ùå íàïðàâèì è íèå.
• Ùå îáîçíà÷èì òåêóùîòî (ïîñëåäíî ïîñî÷åíîòî) òîï÷å ñ ÷èñëî, ñïîðåä êîåòî "ïàð÷åòàòà íà òîðòàòà" ùå ñå èçìåñòÿò. Òàêà ùå ñå ïîëó÷è, ÷å ïîñî÷åíîòî òîï÷å çàñòàâà ïî-ñðåäàòà, à îñòàíàëèòå ñå ïîäðåæäàò ñïîðåä íåãî.
• Ïîçèöèèòå íà òîï÷åòàòà íå ñå ñìåíÿò ìîìåíòàëíî, à ïëàâíî. Òîâà ñå ïîñòèãà, ÷ðåç åäíà ìàëêà ôîðìóëêà, êîÿòî ùå äîñòèãíå æåëàíèÿ úãúë ïëàâíî. Îùå ïîâå÷å, ÷å ÷åñòîòà íà êàäðèòå ùå çàäàäåì äà áúäå îê. 30 fps.
Íàïðàâåòå ñè åäíî òîï÷å ñ Oval Tool. Îêîëî 30 ïèêñåëà ùå ñà äîñòàòú÷íî. F8 -> MovieClip è ñëîæåòå Registration point â ñðåäàòà. Îùå äîêàòî ãî ïðàâèòå MovieClip íàòèñíåòå Advanced îò ïðîçîð÷åòî (àêî íå ñòå ãî íàòèñíàëè) è èçáåðåòå îòìåòêàòà "Export for ActionScript". Ïîëåòî Identifier âå÷å òðÿáâà äà å àêòèâíî - âúâåäåòå â íåãî btn. ×ðåç òîçè identifier ùå ðàçìíîæèì òîï÷åòàòà, êàòî ãî âèêàìå îò Library. Ñåãà èçòðèéòå òîï÷åòî îò ñöåíàòà. Çàñåãà íÿìà äà íè òðÿáâà.
Òðÿáâà äà íàïðàâèì è áóòîíè, êîèòî âñúùíîñò ùå óëàâÿò äâèæåíèåòî íà ìèøêàòà. Íàïðàâåòå åäèí ïðàâîúãúëíèê ñ äúëæèíà 60 ïèêñåëà è âèñî÷èíà 250 ïèêñåëà. Ïîâòîðåòå ïðîöåäóðàòà ñ òîï÷åòàòà, ñàìî ÷å â ïîëåòî identifier ñëîæåòå btn_back.
Âå÷å ñìå ãîòîâè äà ïðèñòèïèì êúì êîäà. Ïîñî÷åòå ôðåéì è îòâîðåòå Actions ïàíåëà (F9). Íà ïúðâî âðåìå, ïðåäè äà ïèøåòå â ïàíåëà âèæòå äàëè íà íåãî ïèøå "Actions - frame". Àêî ôðåéìîâåòå âè ñà ïîâå÷å îò åäèí ñëîæåòå stop(); òàì êúäå ùå ïèøåòå, àêî âè å åäèí åäèíñòâåí ôðåéì - ìîæåì äà çàïî÷íåì ïèñàíåòî.
Êàòî çà íà÷àëî, ùå îòáåëåæèì ñöåíàòà ñ ïðîìåíëèâà - äîñòà óäîáíà òåõíèêà - ñëåä ìàëêî ùå ïðèêà÷èì òîï÷åòàòà è ïðàâîúãúëíèöèòå íà ñöåíàòà, òàêà ÷å êàòî ïèøåì êîäà, Flash ùå ðàçïîçíàå ìåòîäèòå íà ïðîìåíëèâà è ùå âèæäàòå Code Hints.
var home:MovieClip = this;
Íåùî ìíîãî âàæíî - ùå äåôèíèðàìå ïðîìåíëèâà, êîÿòî ùå ïðåäñòàâëÿâà áðîÿ íà òîï÷åòàòà (ñúîòâåòíî íà ïðàâîúãúëíèöèòå). Àêî ÷åòåòå îò XML, ùå ÿ äåôèíèðàòå ïî-êúñíî, íî çà ñåãà ùå ãî íàïðàâèì ñòàòè÷åí:
var num:Number = 10;
(Äåñåò òîï÷åòà.)
Îñòàâåòå 5-6 ðåäà ïðàçíè - ðàçäåëåòå ñè êîäà òàêà - íàé-îòãîðå ïðîìåíëèâè, à íàäîëó ôóíêöèè è ïðî÷åå.
Ùå çàïî÷íåì ñ öèêúë for, îò 0 äî 9 èëè îò 1 äî 10, ïî ïðèíöèï íÿìà çíà÷åíèå, íî å äîáðå äà çàïî÷âàòå îò 0 (èëè ñïîðåä ñëó÷àÿ), çà äà íå ñå áúðêàòå.
for(var i:Number=0; i
Äåôèíèðàìå ïðîìåíëèâà btn ñ êîÿòî ùå îïåðèðàìå ïî-ëåñíî. Ïîñî÷âàìå identifier-a, êîÿòî âå÷å çàäàäîõìå â Library. Èçáèðàìå è instance name çà âñÿêî òîï÷å, çàùîòî ïîñëå ùå íè å íóæíî äà ãî íàìèðàìå. i+num+2 - òîâà áóêâàëíî å äúëáî÷èíàòà íà âñÿêî òîï÷å, 0 - òîâà å äúëáî÷èíàòà íà ñöåíàòà (home), íå ìîæå äà èìà äâà îáåêòà íà åäíà è ñúùà äúëáî÷èíà, à èñêàìå ïðàâîúãúëíèöèòå äà ñà çàä òîï÷åòàòà. Çàòîâà ïðèáàâÿìå num.
var btn:MovieClip = home.attachMovie("btn", "btn"+i, i+num+2);
Òîâà å åäíà îò êëþ÷îâèòå òî÷êè â êîäà. angle å ñâîéñòâî çà âñÿêî òîï÷å, êîåòî íèå äåôèíèðàìå (ÎÎÏ). Òóê ñè "ðàçðÿçâàìå òîðòàòà" íà ïàð÷åòà. Òúé êàòî ôóíêöèÿòà ñèíóñ âúâ ôëàø î÷àêâà ðàäèàíè, à íå ãðàäóñè, íàïðàâî ùå ðàáîòèì ñ ðàäèàíè. 360 ãðàäóñà, ò.å. åäèí ïúëåí êðúã å ðàâåí íà Ïè óìíîæåíî ïî 2 ðàäèàíà (3.14 * 2). 3.14 å ïðåêàëåíî íåòî÷íî, çàòîâà ùå èïîëçâàìå Math.PI, êîåòî ùå ãî èçâåäå äîñòà ïî-ïðåöèçíî. Ðàçäåëÿìå öÿëàòà "òîðòà" íà áðîÿ òîï÷åòà è ïîëó÷àâàìå ïàð÷åòàòà. Óìíîæàâàìå ïî íàðàñòâàùîòî i îò öèêúëà, êîåòî ùå íàïðàâè ïàð÷åòàòà íà ðàâíè ðàçñòîÿíèÿ. Ò.å. (â ãðàäóñè) - ïúðâîòî òîï÷å ùå èìà úãúë 0 ãðàäóñà (i çàïî÷âà îò 0), âòîðîòî ïàð÷å 36 ãðàäóñà, òðåòîòî 72 è ò.í.
btn.angle = i*((Math.PI*2)/num);
Åäíà òåõíèêà, êîÿòî îáè÷àì äà ïðèëàãàì - èç÷èñëÿâàì, êîëêî å ðàçòîÿíèåòî äî ïúðâîòî òîï÷å îò íà÷àëîòî íà ñöåíàòà. Ùå ïîäðåäèì òîï÷åòàòà åäíî äî äðóãî ñ 10 ïèêñåëà ðàçòîÿíèå ïîìæåäó èì, à àç çíàì êîëêî òîï÷åòà ùå èìà (num).
var k:Number = Stage.width/2 - (btn._width*num + 10*(num-1))/2;
Çàäàâàìå õîðèçîíòàëíàòà ïîçèöèÿ è öåíòðèðàìå ñ k.
btn._x = btn._width*i + 10*i + k;
Òóê ùå èïîëçâàìå âå÷å çàäàäåíèÿ "úãúë", êîéòî êàêòî âå÷å îáÿñíèõ ñúùåñòâóâà ñàìî íà òåîðèÿ. Ïðèáàâÿìå è Stage.height/2, êîåòî âèíàãè å ñðåäàòà íà ñöåíàòà. Âúðíåòå ñå ãîðå ïðè ïðîìåíëèâèòå è äåôèíèðàéòå r - ðàäèóñ, êîéòî ùå èçïîëçâàìå. Íàïðàâèõìå áóòîíèòå-ïðàâîúãúëíèöè 250 ïèêñåëà, íî çà ðàäóèñ òîâà å ìíîãî, òàêà ÷å çàäàéòå îêîëî 80:
var r:Number = 80;
Çàåëåæåòå êàê àäðåñèðàìå úãúëà íà âñåêè áóòîí (ÎÎÏ). Ñòîéíîñòèòå, êîèòî âðúùà ñèíóñ ñà â èíòåðâàë îò -1 äî 1, à íàøèòå úãëè ñà â ðàâíè èòåðâàëè îò 0 ãðàäóñà äî 360 (ò.å. îò 0 äî PI*2). Àêî òåñòâàòå ñåãà ùå âèäèòå, ÷å òîï÷åòàòà ñà ïîäðåäåíè â ñðåäàòà íà ñöåíàòà è ñà îáðàçóâàëè åäíà ñèíóñîèäà.
btn._y = Stage.height/2 + Math.sin(btn.angle)*r;


Ñòðàíèöè: 1 2 »

Êîìåíòàðè (5)

Traseur4o íà 15.09 2007 â 14:20÷.
ìîæå ëè íÿêàêâî äåìî?
komapeb íà 11.12 2007 â 18:41÷.
:) Çäðàâåéòå.
Ïðåäëàãàì òàì êúäåòî çàäàâàìå ïðîìåíëèâà
var r:Number = 80;

äà ïðîìåíèì ÷èñëîòî 80 ñ òîâà:
(Stage.height/2)-(btn._height/2)
...
òàêà ìàêñèìàëíàòà è ìèíèìàëíàòà òî÷êè, êîèòî ìîãàò äà äîñòèãíå îïðåäåëåíî òîï÷å, ùå å ñúîòâåòíî ãîðíàòà è äîëíàòà ÷àñò íà íàøàòà ñöåíà (íåçàâèñèìî îò âèñî÷èíàòà è).
Íàäÿâàì ñå äà ñúì áèë ïîëåçåí :)
grizli íà 06.05 2008 â 14:04÷.
À áå ïè÷, ìíîãî ñà òè ÿêè óðîöèòå, íî òîÿ ñïåöèàëíî ñàìî ñ Àäîá ôëàø ëè ñòàâà? Ïðîáâàì ñ Ôëàø 8, ñúîòâåòíî ïîëçâàì ActoinScript 2.0 è ìè äàâà ãðåøêà ïðè btn._x = btn._width*i + 10*i + k; ')' expected
grizli íà 06.05 2008 â 14:29÷.
Îïðåäåëåíî èìà ãðåøêè â êîäà - ïðè for ëèïñâà çàòâàðÿùà ")", êàêòî è {çà íà÷àëî íà öèêúëà
simeonkata íà 11.05 2008 â 15:48÷.
àáå äàéòå íåêâî äåìî ïëñ?

Ðåãèñòðèðàéòå ñå, çà äà äîáàâèòå êîìåíòàð

ðåêëàìà

© Âñè÷êè ïðàâà çàïàçåíè. 2006-2008. Created by: Site.bg
Ïðåïîðú÷âàìå: IT Íîâèíè | Êèíî è èãðè | Äèïëîìà.áã | Paparak.bg | Òóíèíã Ïîðòàë | uchenik.com | TRAVEL òóðèçúì | Ðåôåðàòè | AmAm.bg | Èäå.ëè | Êóðñîâè ðàáîòè | AnimeS-bg.com | Ôîòî Ôîðóì | Çàïîçíàíñòâà | Ìðåæà îò ïðèÿòåëè | IT Light | Spodeli.net | Ôîòî-Êóëò | IDG.BG | Teenproblem.net | Áëîã - Îáðàçîâàíèå | Fresh-BG.com | Hanovete.com | Bulfleet.com | Mythlands.com | Ohoboho.com | Êàçàíëúê.Com | News24 | Setcom.bg | Atol.bg | Elmaz.com | MobileBulgaria.com