Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Programet
  • Metodat gotoAndPlay() ActionScript dhe gotoAndStop(). Kërceni në një kornizë të caktuar

Metodat gotoAndPlay() ActionScript dhe gotoAndStop(). Kërceni në një kornizë të caktuar

Në këtë mësim, ne do të shqyrtojmë 2 pyetje:

  1. Metodat gotoAndPlay() ActionScript dhe gotoAndStop(). Kërceni në një kornizë të caktuar
  2. informacion shtese

Krijimi i një butoni për të luajtur një film

Krijo shtresë e re.

Klikoni klikoni me të djathtën klikoni në kornizën e fundit të videos tuaj. Zgjidhni Inset Keyframe nga menyja e kontekstit (mund të përdorni gjithashtu tastin F6 për të krijuar një kornizë kyçe).

Jepini butonit një emër, si p.sh. btnReplay.

Në shtresën ku keni shtuar metodën stop(), klikoni në kornizën e fundit.

Hapni panelin e Veprimeve.

Rreshti poshtë metodës stop() ActionScript shkruani emrin e butonit, vendosni një pikë dhe më pas shkruani

AddEventListener(MouseEvent.CLICK, riplay);

Krijo një mbajtës ngjarjesh

Riprodhimi i funksionit (ngjarje:MouseEvent):void ( )

Brenda mbajtëse kaçurrelë thirrni

GotoAndPlay (1);

Shtypni Ctrl+Enter.

Videoja do të fillojë të luhet. Në kornizën e fundit, do të ndalet dhe do të shfaqet një buton.

Klikoni butonin. Videoja do të fillojë të luhet nga fillimi.

Klikoni në butonin "Kthehu në origjinal".

informacion shtese

Konsiderohet praktikë e mirë të etiketoni një kornizë kyçe në vend që t'i referoheni asaj me numrin e saj. Problemi kryesor me referencat e numrave të kornizave, përveçse është i vështirë për t'u mbajtur mend, është se numrat mund të ndryshojnë kur kornizat shtohen ose hiqen nga filmi, kështu që veprimi i synuar nuk do të funksionojë siç duhet!

Për shembull, korniza e fundit në filmin tuaj është 200, por nëse më vonë i shtoni 10 korniza të tjera gjatë redaktimit, atëherë thirrja e gotoAndStop(200) do ta ndalojë filmin jo në kuadrin e fundit, siç ishte planifikuar, por 10 korniza përpara tij. Në të kundërt, nëse e etiketoni kornizën e fundit si "fund", atëherë nuk do të kishte asnjë problem - ndalimi do të ndodhte në vendin e duhur dhe kornizat e shtuara nuk do të ndikonin në skenar në asnjë mënyrë.

Nje tjeter anën pozitive përdorimi i shkurtoreve: ato shfaqen në vijën kohore, d.m.th. Mund t'i shihni dhe të lundroni lehtësisht kur ndodhin momente të tilla në kod, në vend që t'i kërkoni duke lëvizur nëpër video.

Shkurtoret duhet të vendosen në kornizat kryesore në një shtresë të veçantë të krijuar posaçërisht për to, megjithëse shumë programues flash i kombinojnë ato me skriptin, duke vendosur gjithçka në të njëjtën shtresë "veprimesh". Kërkesa kryesore këtu është ndarja e etiketave dhe kodit nga shtresat me elemente vizuale.

Ju lutemi aktivizoni JavaScript për të parë komentet.

Në këtë mësim, ne do të shikojmë krijimin e një butoni që, kur të klikohet, do të ridrejtohet në sajt.

Krijo një dokument të ri ActionScript 3.0

Krijimi i një butoni: vizatoni një objekt në skenë

Në panelin "timeline", krijoni dy shtresa, të parën e quajmë "veprime", të dytin - "buton".

Tani zgjidhni shtresën "buton" dhe vizatoni një buton mbi të duke përdorur Mjetin Primitive Rectangle.

Le të bëjmë një mbushje me ngjyrë blu dhe rrumbullakosni pak qoshet.

Shndërrimi i një objekti në një simbol butoni

Le ta kthejmë objektin në një simbol. Për ta bërë këtë, përdorni "Mjetin e Zgjedhjes", i cili ndodhet në paneli i djathtë, zgjidhni objektin dhe shtypni butonin e djathtë të miut, zgjidhni "Convert to Symbol" në menynë e kontekstit që shfaqet, vendosni "button" në fushën "type", jepni emrin objektit "button1" në fushën "emri". .

Konfigurimi i butonit

Klikoni dy herë mbi objektin. Katër korniza u shfaqën në panelin e vijës kohore: Lart, Mbi, Poshtë dhe Goditje.

Korniza Lart e shfaq butonin në gjendjen e tij normale kur nuk është vendosur mbi të dhe kur nuk shtypet. Korniza "Over" tregon gjendjen e butonit kur kursori është mbi të, ndërsa korniza "Poshtë" tregon pamjen butonat kur klikohen me miun. Korniza "Hit" shfaq butonin pasi të klikohet, ne nuk do ta përdorim atë.

Një kornizë është krijuar tashmë për "Up", tani le të krijojmë korniza kyçe për elementë të tjerë. Për ta bërë këtë, zgjidhni kornizën e dëshiruar dhe kliko me të djathtën për të thirrur menyja e kontekstit, në të cilën tregojmë "Insert Keyframe".

Tani duhet të modifikojmë pamjen e butonit në secilën kornizë veç e veç. E lëmë elementin "Lart" të pandryshuar, zgjedhim "Përfundim" dhe shkojmë në panelin e sipërm djathtas të programit. Në cilësimet "Color", zgjidhni një ngjyrë për butonin pak më të hapur se origjinali.

Për elementin "Poshtë", vendosni ngjyrën të jetë më e errët se zakonisht.

Le të bëjmë që butoni të tkurret pak kur klikohet. Për ta bërë këtë, duke qenë në kornizën e zgjedhur "Poshtë", zgjidhni mjetin në panelin e djathtë "Free Transform Tool".

Mbani të shtypur tastet Alt + Shift dhe zvogëloni madhësinë e objektit.

Nisja e aplikacionit

Ju mund të shihni se çfarë ndodhi. Për ta bërë këtë, shkoni te pjesa kryesore Menuja kryesore"File -> Publish Preview -> Flash" ose thjesht shtypni ctrl+enter në tastierën tuaj.

Shtimi i tekstit në një buton

Tani le të shtojmë pak tekst në butonin. Për ta bërë këtë, ndërsa jeni në modalitetin e redaktimit të butonit1, krijoni një shtresë tjetër në panelin "timeline", në të cilën do të vendosim tekst arbitrar.

Shtimi i një mbajtësi të ngjarjeve me klikimin e butonit

Në mënyrë që një veprim të ndodhë kur klikohet butoni, duhet të futni kod programimi. Për ta bërë këtë, kalojmë nga modaliteti i redaktimit të butonave në modalitetin e skenës.

Duke përdorur mjetin e përzgjedhjes, zgjidhni një objekt dhe në panelin e djathtë të programit, në cilësimet "Properties" në fushën "Emri i shembullit" shkruani emrin e butonit në mënyrë që të mund ta përdorni objektin në modalitetin e programimit. Le ta quajmë objektin "btn1".

Le të shkruajmë rreshtin e parë të kodit. Mbani në mend se gjuha ActionScript3.0 është e ndjeshme ndaj shkronjave të vogla, që do të thotë se ajo trajton një fjalë me shkronjë të vogël dhe një fjalë me shkronjë të madhe si të ndryshme. Pra, ne shkruajmë:

Btn1.addEventListener(MouseEvent.CLICK, click1);

Le të hedhim një vështrim më të afërt në këtë rresht:
btn1 është butoni emri i të cilit është dhënë në modalitetin e modifikimit të skenës;
addEventListener - këtu shtojmë një mbajtës të ngjarjeve për butonin;
MouseEvent.CLICK - ngjarje - klikim i butonit të miut;
klik1 është tipar i ardhshëm, i cili do të bëjë atë që duam të ndodhë kur të klikohet butoni.

Le të shkruajmë një funksion për të trajtuar butonin:

Funksioni click1(e:MouseEvent):void ( var url:String = "http://www.site"; var urlKërkesë:URLRequest = URLRequest(url); navigateToURL(urlRequest); )

Le të shohim disa pika në kod:

funksioni click1(e:MouseEvent):void - emri i një funksioni me një parametër që nuk do të kthejë asnjë vlerë;
var url:String = "http://www.site"; - krijoni një variabël vargu dhe caktoni menjëherë atë vlera e tekstit në formën e një url.
var urlKërkesë:URLKërkesë = URLKërkesë e re(url); Në mënyrë që butoni të ridrejtohet në një adresë url, ju duhet të krijoni një variabël me llojin URLRequest dhe t'i kaloni asaj një vlerë stok ose një ndryshore teksti me një vlerë të tillë si parametër.
navigateToURL(urlKërkesë); - ridrejtoni në adresën url.
Shtypni ctrl+enter dhe shikoni se çfarë ndodh.

Deri më tani, ne kemi parë filma Flash që luheshin pa ndërhyrjen e shikuesit nga fillimi në fund. Megjithatë, Flash ju lejon gjithashtu të krijoni aplikacionet interaktive, në të cilën përdoruesi mund të kontrollojë shfaqjen e përmbajtjes. AT këtë mësim do të fillojmë me elementët e gjuhës së skriptimit Action Script dhe do të shohim se si mund të përdoret për të krijuar aplikacione interaktive. Si shembull, le të krijojmë një album fotografik me elementë ndërfaqe interaktive. Por, përpara se të vazhdojmë me përshkrimin e Action Script, duhet të flasim për një lloj tjetër simbolesh që kemi injoruar deri më tani - këto janë simbole të butonave. Për të ndërtuar një ndërfaqe interaktive, ato janë thjesht të nevojshme.

Krijimi i butonave

Butoni është një klip filmi interaktiv me katër korniza. Kur i caktojmë një lloj butoni një simboli, Flash krijon një afat kohor me katër korniza për simbolin e ri:

Gjendja lart është korniza që korrespondon me situatën kur butoni nuk shtypet dhe treguesi i mausit nuk është mbi butonin;

Mbi gjendje - një kornizë që ilustron pamjen e butonit kur treguesi i mausit është mbi butonin, por butoni nuk shtypet;

Down-state - kjo kornizë tregon pamjen e butonit kur shtypet;

Hit-state - përcakton zonën në të cilën butoni i përgjigjet një klikimi të mausit; kjo zonë nuk është e dukshme në klip.

Për të krijuar një buton, ekzekutoni komandën Insert => New Symbol (mund të shkruani shkurtoren e tastierës Control + F8). Në dialogun Krijo simbolin e ri që shfaqet, vendosni një emër për simbolin e butonit (për shembull, but1) dhe zgjidhni llojin e simbolit Button.

Flash do të kalojë në modalitetin e redaktimit të karaktereve, duke ofruar korniza Lart, Mbi, Poshtë dhe Hit. Korniza e parë, Up, bëhet një kornizë boshe kryesore. Le të vizatojmë një pamje të pashtypur të butonit në këtë kornizë (Fig. 1).

Oriz. 1. Butoni i kornizës UP

Le të zgjedhim kornizën e dytë, të shënuar si Mbi dhe që korrespondon me gjendjen kur kursori qëndron pezull mbi butonin. Le të fusim një kornizë kyçe në këtë kornizë (duke përdorur komandën Insert => Keyframe), si rezultat i së cilës do të shfaqet një kornizë kyçe që përsërit plotësisht përmbajtjen e kornizës Up. Le të ndryshojmë ngjyrën e butonit, siç tregohet në Fig. 2.

Fig 2. Mbi kornizën e butonit

Në mënyrë të ngjashme, le të shtojmë kornizën tjetër (Down-frame) dhe të vizatojmë gjendjen e shtypur të butonit (Fig. 3).

Oriz. 3. Butoni i kornizës poshtë

Tani për tani nuk do të vizatojmë asgjë në kornizën Hit, por do t'i kthehemi kësaj kornize pak më vonë.

Le të kalojmë në skenën kryesore, të thërrasim bibliotekën duke përdorur komandën Window => Library dhe të krijojmë një shembull të simbolit të butonit duke e tërhequr atë në skenë (Fig. 4.)

Oriz. 4. Krijoni një shembull të butonit duke e tërhequr atë nga biblioteka

Rezultati është filmi i mëposhtëm. Siç mund ta shihni nga ky film, butoni shtypet jo vetëm kur klikojmë në zonën qendrore (të punës) të butonit, por edhe kur klikojmë në kornizën rreth tij. Kjo për faktin se nëse korniza Hit nuk vizatohet, atëherë Hapësira e punës butoni do të përputhet me kornizën lart.

Në mënyrë që butoni të shtypet vetëm në zonën e punës, është e nevojshme të përcaktohet kjo zonë në Hit-frame, domethënë të vizatoni një buton pa kornizë (shih Fig. 5).

Oriz. 5. Butoni i goditjes së kornizës

Pasi të shtojmë Hit-frame-n e kërkuar, do të marrim filmin tjetër, në të cilin kur klikoni në kornizë, butoni nuk shtypet.

Për ta bërë një buton të klikueshëm, duhet të lidhni faktin që butoni është klikuar me ekzekutimin komanda të caktuara, domethënë për të përshkruar një skenar të caktuar. Për të vendosur skriptet në Flash, ekziston gjuhë e veçantë skenar veprimi. Në këtë mësim do të prekim vetëm një pjesë të vogël të aftësive të kësaj gjuhe dhe në të ardhmen do t'i kthehemi strukturës dhe sintaksës së Action Script pasi shembujt e krijimit të filmave ndërveprues në Flash bëhen më të ndërlikuara.

Kuptimi i skriptit të veprimit

Action Script është një gjuhë skriptimi - një grup udhëzimesh që kontrollojnë elementet e një filmi Flash. Skriptet e veprimit mund të futen në një film ose të ruhen në një film të jashtëm skedar teksti me shtrirje AS.

Kur futni një skenar në një film, mund ta futni atë në pjesë të ndryshme të filmit. Më konkretisht, Action Scripts mund të përmbajë korniza kyçe, shembuj butonash dhe raste të klipeve të filmit. Prandaj, skriptet quhen skriptet e kornizës (Veprimi i kornizës), skripti i butonave (Veprimi i butonave) dhe skripti i klipit (Veprimi i filmit).

Skriptet e veprimit ekzekutohen kur ndodhin ngjarje të caktuara të shkaktuara nga përdoruesi ose sistemi. Mekanizmi që tregon Flash program Cili deklaratë duhet të ekzekutohet kur ndodh një ngjarje quhet mbajtës i ngjarjeve.

Action Script ka sintaksën e vet, ashtu si sintaksa JavaScript. Flash MX 2004 mbështet të gjitha skriptet e veprimit versionet e mëparshme blic.

Një nga konceptet kryesore të Action Script është Actions - komanda që lëshojnë udhëzime gjatë ekzekutimit të një skedari SWF. Për shembull, gotoAndStop() dërgon kokën e luajtjes në një kornizë ose sugjerim specifik. Nga fjala Veprime vjen emri i gjuhës - Action Script (fjalë për fjalë - skenar veprimi). Me shumicën e koncepteve të kësaj gjuhe, do të njihemi me shembuj specifikë.

Album fotografik interaktiv

Le të demonstrojmë përdorimin e butonave për të kontrolluar një album fotografik - krijoni një grup fotografish dhe shtoni dy butona që do të lëvizin nëpër foto përpara dhe prapa.

Le të vendosim foton e parë në vijën kohore kryesore dhe të shtojmë një buton nga grupi standard. Për të hyrë dosjen e dëshiruar duhet bërë Komanda e Windows=> Panelet e kontrollit Bibliotekat e zakonshme => Butonat (Fig. 6).

Oriz. 6. Shto një buton nga bibliotekë standarde

Si rezultat i ekzekutimit të kësaj komande, do të shfaqet një panel që përmban një grup të madh butonash të vizatuar paraprakisht. lloje të ndryshme. Le të zgjedhim, për shembull, butonat e tastierës (butona të ngjashëm me tastet e tastierës), të hapim dosjen përkatëse, të zgjedhim butonin e majtë të tastit (Fig. 7) dhe të krijojmë një shembull të këtij butoni (duke e tërhequr atë në skenë).

Oriz. 7. Artikujt e dosjeve të butonave kyç

Vini re se kur vendosni butonin e dytë (kyç-djathtas) në skenë dhe e zhvendosni për t'u lidhur me butonin e parë, programi jep një këshillë veglash ( vizë pika-pika), i cili ju lejon të poziciononi me saktësi butonin (Fig. 8).

Oriz. 8. Rreshtimi automatik i butonave në të njëjtin nivel

Për të shtuar një skript, duhet të telefononi redaktuesin e skriptit të veprimit duke përdorur komandën Window =>Panelet e zhvillimit => Veprimet ose duke shtypur tastin F9. Nëse do të shkruani shpesh skripta, atëherë ia vlen të mbani mend këtë komandë të tastierës. Si rezultat, do të shfaqet redaktori Action Script (Fig. 9).

Oriz. 9. Panelet e redaktuesit të skriptit të veprimit

Nëse eksperimentoni me theksimin elemente të ndryshme në skenë, ndërsa monitoroni mesazhet në panelet e redaktuesit të Action Script, do të zbuloni se programi sugjeron se në cilin element mund të "varni" kodin. Nëse zgjidhni një kornizë në skenë, atëherë mbishkrimi Actions - Frame shfaqet në këndin e sipërm të majtë të panelit të redaktuesit, nëse klikoni në butonin, atëherë shfaqet mbishkrimi Actions - Button, domethënë programi kërkon që kodi që futni do t'i referohet skriptit të butonit. Dhe nëse zgjidhni një foto, atëherë në fushën e destinuar për futjen e skriptit, do të shfaqet mesazhi: Zgjedhja aktuale nuk mund të ketë veprime të zbatuara në të (skripti nuk mund të zbatohet në këtë objekt të zgjedhur).

Ne do t'i caktojmë një skript një butoni. AT versionet e fundit ActionScript ka aftësinë për të shkruar kod të centralizuar, domethënë kod që ndodhet në një vend, dhe kjo aftësi ju lejon të kuptoni më mirë programet e mëdha. Megjithatë, në shembujt e thjeshtë (të cilët po shohim), caktimi i një skripti në një buton është krejtësisht i pranueshëm.

Pra, për një buton me një shigjetë majtas, duhet të zyrtarizojmë skenarin e mëposhtëm: "Nëse butoni lëshohet në një kornizë të caktuar, atëherë nga kjo kornizë duhet të shkoni në kornizën e mëparshme". Në përputhje me sintaksën e gjuhës Action Script (Fig. 10), do të duket kështu:

Rreshti i parë përmban mbajtësin e ngjarjeve të butonit on(), i cili ka formatin e mëposhtëm:

Tani le të shtojmë disa korniza kyçe në mënyrë që butonat e krijuar në kornizën e parë të kopjohen në to dhe ne vendosim fotot e nevojshme në kornizat e krijuara rishtazi.

Nëse e ekzekutoni filmin e krijuar për ekzekutim, atëherë kornizat do të luhen vazhdimisht njëri pas tjetrit, dhe për këtë arsye, para së gjithash, duhet të japim komandën "Stop" në kornizën e parë. Për ta bërë këtë, shtoni komandën përkatëse në kornizën e parë (Fig. 11).

Oriz. 11. Skenari i caktuar në kornizën e parë

Ju lutemi vini re: komanda nuk i caktohet më butonit, por kornizës. Fakti që një skene i është caktuar një skenar shënohet në vijën kohore kryesore - një shkronjë e vogël "a" shfaqet mbi pikën e theksuar në përcaktimin e kornizës.

Si rezultat, ne morëm filmin e mëposhtëm.

Nëse kemi vetëm disa korniza në albumin e fotografive, atëherë dy butona - "Përpara" dhe "Prapa" - janë mjaft të mjaftueshme, por nëse grupi i fotografive është i madh, atëherë është e dëshirueshme që të keni butona që dërgojnë në fillim dhe fundi i filmit. AT shembulli tjetër do të shtojmë butonat përkatës: “Tek korniza e parë” dhe “Tek korniza e fundit”. Ju mund të zgjidhni butonat e një kujtese të përshtatshme nga biblioteka standarde e butonave nga dosja Circle Buttons (Fig. 12).

Në shembullin e propozuar, do të njihemi me një komandë tjetër gotoAndStop (), e cila ju lejon të hidheni në kornizën e dëshiruar dhe më pas të ndaloni.

Oriz. 12. Butonat nga dosja Circle Buttons

Në butonin për kalimin në kornizën e parë (e treta nga e majta në Fig. 13), do të varim kodin, siç tregohet në Fig. trembëdhjetë.

Oriz. 13. Skenari për butonin "Në kornizën e parë"

Në rastin e një albumi fotografik me pesë korniza, shtoni skriptin e kalimit "Tek korniza e fundit" në butonin e fundit:

Skriptim i automatizuar

Deri më tani, ne i kemi shtypur të gjitha komandat me dorë, por panelet e redaktuesit të ActionScript ofrojnë një sërë shërbimesh të automatizuara skriptimi. Le të shqyrtojmë këto mundësi.

Oriz. 14. Mjete të automatizuara të skriptimit

Paneli i redaktuesit të skriptit të veprimit ju lejon të zgjidhni, tërhiqni, riorganizoni dhe fshini komandat.

Le të tregojmë se si mund të shkruani të njëjtin skenar për butonin "Përpara" në modalitetin e automatizuar. Duke zgjedhur dosjen e Kontrollit të Klipit të Filmit (dritarja e sipërme majtas në Figurën 14), mund të hyni në mbajtësin e ngjarjes dhe më pas ose të klikoni dy herë në artikullin përkatës ose të tërhiqni shprehjen në fushën e shkrimit të skriptit në modalitetin Drag and Drop.

Oriz. 15. Këshillë për të plotësuar një shprehje

Si rezultat, në fushën e punës do të shfaqet shprehja e nevojshme dhe një aluzion i formularit (Fig. 15): ju zgjidhni komandën e kërkuar nga menyja dhe shprehja plotësohet automatikisht. Siç mund ta shihni nga menyja, mund të zgjidhni jo vetëm gjendjen e lidhur me butonat në ekran, por gjithashtu mund të zgjidhni nga menyja në Fig. Shtypni tastin me 15 pika " ", ose shtypni tastin" ”, që korrespondon me shtypjen tastet e tastierës(shigjeta majtas, shigjeta djathtas), domethënë, është e mundur të krijoni një album fotografik që do të "kthehet" duke përdorur tastet e tastierës.

Oriz. 16. Thirrjet me butonin e tastierës

Le të përdorim komandën keyPress ” (Fig. 16), pastaj shkoni në dosjen Timeline Control, zgjidhni komandën nextFrame dhe tërhiqeni në fushën e punës (Fig. 17).

Oriz. 17. Komanda nextFrame mund të gjendet në dosjen Timeline Control

Për butonin që zhvendos filmin në fillim të albumit fotografik, mund të zgjidhni si ngjarje nga menyja duke shtypur çelësat e shtëpisë, dhe pastaj (Fig. 18) tërhiqni komandën gotoAndStop në fushë, si rezultat i së cilës do të shfaqet një tjetër aludim në sintaksën e mundshme të kësaj komande.

Shigjetat në këshillën e veglave ju lejojnë të shikoni variante të ndryshme sintaksë. Programi ofron dy opsione (Fig. 18 dhe 19), domethënë ofron vendosjen e skenës dhe kornizës ose thjesht kornizës. Në rastin tonë, mjafton të specifikoni vetëm kornizën (Frame). Nëse emri i skenës hiqet, ai vendoset në një kornizë të skenës aktuale.

Oriz. 18. Këshillë për sintaksën e mundshme të komandës

Oriz. 19. Shigjeta-trekëndësh ju lejon të shikoni opsionet e sintaksës

Pasi të caktojmë të gjithë butonat e duhura butonat e tastierës, marrim filmin e radhës, ku pagimi përmes fotove do të ndodhë nga tastiera dhe klikimi i butonave në ekran me miun nuk do të shkaktojë asnjë pasojë.

A është e mundur të sigurohet një skenar në të cilin ngjarje të ndryshme do të çojnë në të njëjtat veprime? Rezulton se është e mundur - për këtë, në mbajtësin e ngjarjeve në ndezje, duhet të numëroni listën e emrave të ngjarjeve. Nëse vendosni presje në listën e ngjarjeve pas ngjarjes së parë, atëherë vetë programi do t'ju ofrojë një menu (Fig. 20).

Oriz. 20. Kur futni presje në listën e ngjarjeve, shfaqet automatikisht një menu me komanda shtesë

Le t'i shtojmë ngjarjes së parë (duke shtypur butonin e tastierës) ngjarjen e dytë (lëshimin e butonit në ekran):

on(Shtype tastin" ", lirim)

Le të përsërisim procedurën për pjesën tjetër të butonave dhe si rezultat do të marrim një album fotografik, në të cilin faqet e fotove do të lëvizin si me miun ashtu edhe me tastierën (skedari origjinal FLA mund të merret nga lidhja) .

Në shembullin e konsideruar, ne përdorëm kalimin sipas numrit të kornizës, por kjo metodë nuk është gjithmonë e përshtatshme: nëse numërimi i kornizës ndryshon gjatë redaktimit të filmit, atëherë logjika mund të shkelet. Është më i përshtatshëm për të përdorur tranzicionin sipas shenjës së kornizës. Le të shqyrtojmë një shembull që kërkon jo vetëm shfletimin e albumit, por edhe kalimin në seksione të ndryshme, domethënë lundrim më kompleks.

Lëreni albumin të përbëhet nga vizatime, grafika kompjuterike dhe fotografi.

Le ta etiketojmë kornizën e parë të seksionit "Fotografitë" si Foto, në mënyrë të ngjashme me kornizat e para të seksioneve të tjera, etiketojmë grafikë dhe foto.

Le të krijojmë një shtresë për vendosjen e etiketave dhe ta emërojmë Lables. Për të etiketuar një kornizë, në panelin Properties, zgjidhni llojin e etiketës Emri dhe shkruani emrin e saj. Në rastin tonë, Fotot (Fig. 21). Vendosni shenjat në kornizat 5 dhe 10 në të njëjtën mënyrë (Fig. 22).

Oriz. 21. Një shembull i caktimit të një etikete në një kornizë

Tani le të shtojmë një shtresë të re dhe ta emërojmë Veprimet. Në kornizën e parë kryesore të shtresës Actions, thirrni panelin Actions Frame (duke shtypur butonin F9) dhe shkruani komandën stop () (shih Fig. 22).

Oriz. 22. Skenari i kornizës së parë

Le të shtojmë edhe një shtresë nën emrin Subjects (subjekt), në të cilën do t'u japim tituj kornizave përkatëse: "Pictures" (Fig. 23), "Graphics" dhe "Foto".

Oriz. 23. Titulli për kornizat e rubrikës "Foto"

Tani le të shtojmë butonat e menusë me emra të ngjashëm anash, të cilët do t'i vendosim në një shtresë të re të quajtur Menu.

Le të printojmë artikullin e parë të menusë "Pictures" nga buza e majtë dhe ta përkthejmë në një simbol butoni. Duke përdorur mjetin Shigjeta zgjidhni bllok teksti"Pictures" dhe ekzekutoni komandën Modify => Convert to Symbol (kjo komandë mund të ekzekutohet edhe duke përdorur tastin F8), në panelin Convert to Symbol caktoni llojin e simbolit Button dhe përcaktoni emrin e tij si pictureButton (Fig. 24).

Oriz. 24. Emërtoni butonin për të shkuar në seksionin e fotove emrin fotoButton

Le të krijojmë katër korniza për butonin "Pictures": i pari thjesht do të përfaqësojë teksti origjinal(Fig. 25), i dyti - i njëjti tekst vetëm në ngjyrë blu, ne do të kapërcejmë kornizën e tretë (në këtë rast, korniza Down do të jetë e njëjtë me mbi-kornizën), dhe në kornizën Hit do të vizatoni një zonë drejtkëndëshe që do të përcaktojë butonat e zonës së klikimit (Fig. 26).

Oriz. 25. Foto e butonit të kornizës lartButton

Oriz. 26. Goditja e kornizës së figurës Butoni

Tani duhet të bashkangjisim skriptin në butonin e krijuar rishtazi. Për ta bërë këtë, zgjidhni butonin në Skenën 1 dhe, duke shtypur F9, thirrni panelin Veprimet dhe më pas futni kodin e treguar në Fig. 27.

Oriz. 27. Skenari i kalimit në një kornizë me një etiketë

Pyetje: Krijimi i një butoni për të shkuar në skenën tjetër të prerjes


Mirëdita, të dashur përdorues të forumit. Puna është se unë nuk jam aq i njohur me ActionScript 3.0, por më duhet urgjentisht të përfundoj një detyrë për të.
Ekziston një film flash me 5 korniza përpunuese. Çdo kornizë përmban animacion dhe shoqërim muzikor. Në kuadrin e fundit ku përfundon animacioni dhe muzika, krijova një buton për të shkuar në kuadrin tjetër. Ja përmbajtja e tij:
Kodi i ActionScript 3
1 2 3 4 5 6 stop(); Btn2. addEventListener (MouseEvent . CLICK , f2_ClickToGoToNextFrame) ; funksioni f2_ClickToGoToNextFrame(ngjarja: MouseEvent) : void (NextFrame () ;)

Problemi është se funksionon vetëm një herë. ato. Kalimi nga korniza e parë e redaktimit në të dytin funksionon mirë, por animacioni nuk luan në të dytin. Asgjë nuk ndodh fare.
Mund të më thoni se si ta shkruaj saktë kodin për këtë buton? Do të isha mirënjohës për ndihmën.

P.S. Unë jam duke përdorur Flash Professional CS6.

Përgjigje:

Mesazh nga Julia_programues

Dhe në kornizën e dytë është gjithashtu i njëjti buton? me të njëjtin kod?

Emrat e shembujve janë të ndryshëm, por kodi është i njëjtë.
Unë tashmë e kam zgjidhur këtë çështje. Në vend të kornizës tjetër, shkrova ekranin tjetër. Gjithçka funksionoi ashtu siç më duhej. Faleminderit

Pyetje: Çaktivizoni audion kur kaloni midis prerjeve


Ditë të mbarë, përdorues të forumit.
Ekziston një film flash që përmban disa korniza redaktimi. Disa prerje përmbajnë audio. Kur kaloni ndërmjet kornizave, zëri mbivendoset. Ju lutem më tregoni si ta bëj në mënyrë që kur ndërroni kornizën e redaktimit, muzika të fiket gjithashtu? Faleminderit paraprakisht.

Përgjigje:

Pyetje: Tingulli nga prerja e parë bie në të dytin


Mirëdita për të gjithë, lindi pyetja se si të sigurohemi që tingulli nga korniza e parë e redaktimit të mos kalojë në të dytin?
Me pak fjalë, po bëj një karikaturë për tanket dhe zhurma e një tanku në lëvizje shkon në kuadrin e dytë të redaktimit, kur, sipas idesë, tanku thjesht qëndron aty dhe qëllon. Më thuaj si ta rregulloj këtë?
Shumë faleminderit paraprakisht për të gjithë ata që kanë dorëzuar!

Përgjigje: si e filloni tingullin?

Pyetje: Krijimi i një butoni për një faqe Google


Mirëdita, të dashur guru të forumit kibernetik. Kam shumë nevojë për ndihmën tuaj për të krijuar një buton të vogël për faqen. Problemi është se unë nuk jam i njohur fare me JavaScript, por më duhet një buton për një faqe me përmbajtjen e mëposhtme:

Unë kam një dritare të integruar me një formular google në faqen e krijuar sites.google, ka një kuti teksti për të futur disa kuti postare. Do të doja të bëja një buton si "Shko në kutinë tuaj postare" poshtë këtij formulari për lehtësinë e përdoruesit.
Siç e kuptoj unë, skripti duhet të marrë tekstin nga ajo dritare dhe të ndërpresë karakteret shtesë, për shembull, shembull përdoruesi në [email i mbrojtur] domain.kg dhe shkoni te i njëjti domen i postës në një dritare të re.

Disa gracka faqet e Google janë shumë të bllokuara nga çdo JavaScript, por ka shtesa për ngjitjen e kodit Skript JavaScript- Embeded Gadjet, ndoshta ai mund të ndihmojë.

Do të isha mirënjohës për çdo informacion mbi problemin tim. Nëse keni nevojë për strukturën e asaj faqeje, unë do të shtoj pamje nga ekrani.

Përgjigje: kodi html opsionale, por e dëshirueshme nëse është e mundur dhe kështu mund të futni një skript. Skenari duhet të futet në tërësi.

Kjo është plehra si parazgjedhje, ju shikoni në shfletues për të parë kodin e elementit se cila është adresa kur klikoni në butonin, në varësi të adresës së futur të kutisë postare.

Pyetje: Kur klikoni mbi butonat, tregoni imazhin tjetër/të mëparshëm


Ekziston një rrëshqitës, i cili është një fotografi e madhe dhe miniaturat nën të, me shigjeta. E bëra në mënyrë që kur të klikoni në foton qendrore, ajo të hapet dhe të bëhet edhe më e madhe, më tregoni se si ta zbatoj kalimin në foton tjetër / të mëparshme me butonat< >

Përgjigje: Si të shfaqni imazhin e mëparshëm dhe të ardhshëm

Pyetje: Krijimi i një butoni me një efekt mbivendosje


Mirembrema

Për dy orë zgjodha se në cilin seksion është më mirë të krijoj një temë, sepse nuk e di nga cila anë t'i qasem zgjidhjes së problemit =/

Do të doja të bëja një buton në sit, por në mënyrë që të ketë një efekt të caktuar video në plan të parë (kam bërë një shembull në After Effects)
Cilat mjete mund të përdoren për ta zbatuar këtë? Dhe a është e mundur fare?
Butoni duhet të sillet "pavarësisht" nga animacioni i efektit. Lëvizi miun - le të themi se u bë jeshil, klikoi - i kuq, e kështu me radhë.

Faleminderit.

Përgjigje: A nuk ka vërtet asnjë opsion?

Më tregoni një grup mjetesh bazë për krijimin e GUI-ve të personalizuara me efekte animacioni për sitin.

E kuptoj që mund të çoroditësh me CSS si këtu ose këtu, por nuk mund ta imagjinoj se si ta zgjidh problemin tim me këto mjete. Përmes css, a mund të bëj një hyrje gjysmërrethore me sfond dinamik "om, apo është e mundur të "derdhet" lëngu në të dhe me mundësi futje të të dhënave?

Kudo shkruajnë se Flash-i është vjetëruar, pa ofruar asnjë alternativë. Në 99% të mësimeve flash, të gjithë elementët/simbolet vizatohen brenda vetë blicit, duke rezultuar në një pamje vizatimore a la "masyanya". Çfarë karikaturash, çfarë lojërash, çfarë GUI. Nuk duket shumë mirë për të thënë të paktën. "Lëvizni në HTML5," thonë ata. Epo më tregoni se si të ndërtoj animacion nëpërmjet kanavacë. Të bësh animacion sprite me dorë në 100 rreshta kodi është pikërisht ajo që ëndërroja dhe prisja në HTML5. Por ju mund të vizatoni linja.

Këtu është një photoshop në të cilin mund të vizatoj le të themi 4 gjendje për një buton. Shpjegoni pse duhet të bëj të njëjtat veprime përmes css ose të rivizatoj të njëjtën gjë në flash?

Sa më shumë të përpiqeni ta kuptoni, aq më shumë ngecni =/

Pyetje: Krijimi i një butoni (shkruani "button" ose shkruani "imazh"?)


Unë jam duke shtypur shabllon psd, u bë e nevojshme përdorimi i një butoni me sfondin e tij në formën e një imazhi. Për të mos bërë banjë me avull, vendosa të përdor tipin e hyrjes = "imazh", a do të jetë e mundur të përpunohet shtypja e një butoni të tillë për të dorëzuar formularin? Apo është e detyrueshme të përdoret type="button"?

Përgjigje:

HTML5
1 2 3 <forma id="myForm" action=""> <input type="image" onclick="submitForm()" /> </formë>
javascript
1 2 3 funksioni submitForm() (document.getElementById("myForm") .submit() ;)
Shtohet pas 1 orë e 6 minuta
Shfaq një foto të butonit, mund të rezultojë në stilin e dorëzimit

Pyetje: Butonat ndalojnë së punuari Adobe Flash)


Kam bërë disa shtresa, secila shtresë ka butonin e saj me një lidhje që duhet të hapet. Por pasi vendosa animacionin për këto shtresa (duke lëvizur lehtë nga prapa skajit), butonat ndalojnë së punuari, thotë regjistri

Prerja 1, shtresa "Veprimet", korniza 1, rreshti 10, kolona 1 1120: Aksesimi i vetive button_1 që nuk ekziston.
Prerja 1, shtresa "Veprimet", korniza 100, rreshti 10, kolona 1 1120: Thirrja e vetive button_1 që nuk ekziston.
Prerja 1, shtresa "Veprimet", korniza 200, rreshti 10, kolona 1 1120: Thirrja e vetive button_2 që nuk ekziston.
Prerja 1, shtresa "Veprimet", korniza 300, rreshti 10, kolona 1 1120: Thirrja e vetive button_3 që nuk ekziston.
Prerja 1, shtresa "Veprimet", korniza 400, rreshti 10, kolona 1 1120: Thirrja e vetive button_4 që nuk ekziston.


si t'i bëni butonat të funksionojnë edhe pas animacionit

Përgjigje: Kam hasur në një problem tjetër, e ruajta dhe hapa swf-in tim në shfletues, por kur klikoj në butonin, ai nuk shkon në faqe (shkon nga adobe flash), çfarë është puna? shfletuesi i kromit

Pyetje: Krijimi i një butoni duke përdorur CSS


Përshëndetje. Po përpiqem të kuptoj se si të krijoj një buton duke përdorur CSS. Vetë parametrat janë: Lartësia - 45 px, Gjerësia - 110 px, Lloji i dizajnit - ovale. Kur klikoni mbi butonin, duhet të shfaqet efekti i klikimit (dhënia, nuk di ta shpjegoj saktë) dhe më pas shkoni te lidhja brenda butonit.

Unë dyshoj se duhet të jetë kështu:

Kodi CSS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 .btn (kufiri: 1px solid #333; skica: asnjë; rreze-kufi: 50%; sfondi: asnjë #fff; gjerësia: 110 px; lartësia: 45 px; rreshtimi i tekstit: në qendër; ekrani: blloku i linjës; lartësia e vijës : 45px; kursori: treguesi; kufiri-fund: 3px solid #333; pozicioni: relative; lart: 0px; -webkit-transition: 0.1s ease-out; -moz-transition: .1s easy-out; . moz-tranzicion: .1s ease-out; -o-tranzicion: .1s ease-out; tranzicion: .1s ease-out;)

Pyetje: Kur klikoni në butonin, shkoni te spiranca dhe hapni bllokun


Përshëndetje!
Ju lutem ndihmë.
Faqja ka një formë filtri me një buton në kokë

Rezultatet e renditjes së filtrit shfaqen në bllokun e mëposhtëm
seksion class = "zgjedhja,
para aplikimit të filtrit, të gjitha regjistrimet shfaqen atje pa renditje

Detyra është kjo.
Fillimisht, fshihni bllokun me regjistrime, kur klikoni mbi butonin dërgo ju duhet të shfaqni bllokun dhe ta ngrini lart (lëvizni në ekran).

Siç u provua.
Ankoruar para bllokut
Së pari, spiranca funksionon vetëm nëse butoni i butonit është i mbështjellë me një lidhje me spirancën dhe, përveç kësaj, vendosni një lidhje të tillë pranë tij, ajo duhet të fshihet.
dublikatë

Së dyti, kur instalova një skript që shfaq një bllok me regjistrime kur klikohet butoni, kalimi në spirancë u zhduk.

Si t'i bëni të gjitha të funksionojnë së bashku dhe në të njëjtën kohë?

Përgjigje: Dreqin, jam i lumtur herët...
Hapet dhe rrotullohet po, por përzgjedhja pushoi së punuari, tregon të gjitha regjistrimet pa filtrim...


Ne kemi mësuar tashmë se si të vizatojmë pak, kështu që unë dua t'ju jap mundësinë të njiheni me një zonë shumë interesante të Flash - krijimi i butonave(buton). Thjesht më vjen keq duke i përdorur këto simbole magjike për qëllimet e mia. Ndryshe nga mjediset e tjera, të cilat në fakt më magjepsin në blic, krijimi i butonave nënkupton jo vetëm vendosjen e algoritmit të funksionimit të butonit, por edhe krijimin e tij. ato. ne vetë vizatojmë dhe shpikim se si do të funksionojë butoni ynë, çfarë do të ndodhë me të kur të shtypet, kur kursori të rri pezull dhe shumë më tepër. Ju siguroj, një përhapje e tillë e fantazisë ju inkurajon për zbulime të reja dhe ++ në vatrën tuaj të kënaqësisë nga ajo që keni bërë :)

Si krijohet butoni dhe pse nevojitet fare? Butoni përdoret pothuajse kudo dhe gjithmonë. Kuptimi i një butoni është që kur e përdorni atë në një farë mënyre (jo ISO, jo e shenjtë), ndodhin ngjarje që përcaktohen nga përmbajtja e këtij butoni ose ndikimi i tij. Zakonisht, mund të aplikohet, duke filluar nga kalimi në një kornizë tjetër duke klikuar mbi të deri te llogaritjet e jashtëzakonshme algoritmike ose ndodhja e të gjitha llojeve të ngjarjeve. Nuk ka kufi për fantazinë. Kur klikoni në një buton që ka një grup komandash, krijohet një ngjarje që përdoret më vonë.

Në këtë artikull, unë dua të konsideroj duke përdorur një buton si një kalim në një kornizë të re. Kjo është: ka disa korniza, por ato nuk zëvendësojnë njëra-tjetrën me radhë, pasi në kornizën e parë vendosëm komanda stop().(Unë fola për të). Pra, le të imagjinojmë: kemi dy korniza, secila prej të cilave ka një mbishkrim që informon për numrin e kësaj kornize për dukshmëri dhe perceptim të lehtë. Në kornizën e parë dhe të dytë kemi një buton. Mora butonin e përfunduar nga Bibliotekat e Adobe Flash CS4 (për ta bërë atë të duket bukur), por ju rekomandoj ta bëni vetë butonin. Si bëhet?

Një objekt vizatohet sipas shijes dhe ngjyrës tuaj, i ngjashëm me një buton (nëse duam të bëjmë një buton prej tij), atëherë zgjidhni të gjithë objektin e vizatuar dhe shtypni butonin F8. Një kërkesë do të shfaqet duke pyetur se çfarë duam të bëjmë nga objekti që kemi zgjedhur. Duhet të zgjedhim një nga opsionet:

  1. Butoni- do të ketë strukturën e vet, si dhe qëllime për programimin e tij për ekzekutim ekipe të ndryshme. Kjo do të thotë, kur kryeni manipulime të ndryshme me butonat: shtypja, pezullimi, tërheqja e kursorit dhe më shumë, një skrip do të kryhet, instalohet dhe përcaktohet nga ne.
  2. Klip (film)- një klip që ka animacion të brendshëm (për këtë do të flas më vonë)
  3. Grafika- grafika, statike dhe e palëvizshme, siç do të jetë fotografia në fushën tonë të veprimtarisë.
Në përputhje me rrethanat, ne zgjedhim butonin. Kjo është e gjitha - butoni ynë ka përfunduar, por është disi statik, nuk ndryshon kur rri pezull me kursorin, në përgjithësi, është thjesht një foto dhe nuk është e qartë nëse është fare e gjallë?

Prandaj, kur kultivoni një buton nga një objekt, ai është i pajisur me disa aftësi: kur klikoni dy herë miu në butonin e krijuar rishtazi, do të hapet struktura e brendshme e çelësit tonë, të cilin tani do ta përshkruaj, do të provoj në detaje. Për të filluar, unë do të paraqes një pamje për përfundimin klikoni dy herë butoni i majtë i miut në butonin:


Ne shohim që jemi brenda butonit dhe shqyrtojmë me kujdes strukturën e tij në zonën e kornizës: ka 4 pika:

  1. Lart- gjithçka nën këtë etiketë është pamja e butonit tonë në mënyrë normale, d.m.th. si do të duket butoni nëse është vetëm në ekran (ne nuk bëjmë asgjë me të). Kështu që do ta shohim në takimin e parë.
  2. Mbi- pamja e butonit kur kursori i miut është mbi të. ato. ne rri pezull mbi të me kursorin tonë dhe butoni ynë ndryshon pamjen e tij për të na bërë të ditur se kemi qëndruar mbi të dhe mund të dëshirojmë ta përdorim. Shumë tipar i dobishëm në Flash, më pëlqen shumë :)
  3. Poshtë- pamja e butonit kur klikojmë mbi të, d.m.th. në momentin që kursori i mausit klikon mbi butonin, do ta shohim pikërisht ashtu siç e përcakton ky shënues
  4. Goditi- E pranoj që nuk e di pse është ky artikull, por zakonisht vizatoj këtu pamjen e butonit në modalitetin neutral, si me një etiketë lart.
Siç mund ta shihni, për secilën mënyrë ne vizatojmë një lloj butoni individual, më besoni, kjo është shumë e përshtatshme për krijimin e zgjidhjeve individuale në këtë fushë.

E kuptuam pak butonin, tani le të kalojmë planin sipas të cilit duam të zbatojmë idenë tonë. Ne kemi dy korniza, secila prej të cilave ka mbishkrimin e vet që na tregon për numrin e kornizës që luhet, plus kemi shtuar të njëjtin buton të bërë në secilën kornizë (mund ta zgjidhni në bibliotekën e përbërësve tanë):


Pra, ne tashmë kemi dy korniza me tekstin e tyre dhe të njëjtin buton. Tani le të kalojmë përmes kodit që do të injektojmë në kornizat dhe butonin tonë. Në kornizën e parë, siç shkrova më lart, ne shkruajmë ndal (), në këtë kornizë komandat, në fakt, përfundojnë :)

Ne do të kryejmë të gjitha operacionet e tjera duke përdorur kodin në buton, dhe menjëherë ia vlen të kuptojmë se komandat për butonin në secilën kornizë do të jenë të ndryshme, domethënë ato nuk transferohen nga korniza e mëparshme. Ne zgjedhim kornizën e parë aktive dhe zgjedhim butonin tonë me një klik. Në dritare Veprimet tani mund të shkruajmë kodin tonë për butonin. Ja çfarë duhet të shkruajmë në kodin e butonit të vendosur në kornizën e parë:

Aktiv (lëshim) ( gotoAndStop(2); )

Tani do të shpjegoj gjithçka: në (lëshim) - këtë operacion përcakton për ne që kodi që do të ekzekutohet kur të klikohet butoni do të shkojë më tej në kllapa katrore. Kjo do të thotë, ne klikojmë në butonin dhe ky kod lexohet brenda tij. Çfarë do të jetë brenda? Brenda kllapave do të shkruajmë tashmë


Çfarë morëm: kur klikoni në butonin, ne vazhdojmë të luajmë kornizën numër 2. Edhe pse fillimisht ndalemi te korniza numër 1, pasi përmban komanda stop(). Tani, duke shtypur butonin nga korniza e parë, vazhdojmë të luajmë të dytën.

Korniza e dytë nuk ka komanda brenda vetes për të ekzekutuar, por ne ndalemi në të, pasi kur lëvizim nga korniza 1, na urdhëruan të ndalemi në këtë kornizë (që nga gotoAnd ndaloni(2)). Prandaj, ne ngrijmë në këtë kornizë dhe shohim, si të thuash, një pamje statike. Si të kthehemi në 1 kornizë tani? Unë mendoj se e keni marrë me mend tashmë - për butonin e kornizës së dytë do të shkruajmë grupin e komandave të përdorura më parë, duke ndryshuar vetëm numrin e kornizës në të cilën do të shkojmë:
në (lëshim) ( gotoAndStop(1); ) Nuk mund të gabojmë nëse në vend të gotoAndStop (1) shkruani gotoAndPlay (1), pasi në çdo rast do të ndalemi në 1 kornizë, sepse përmban komandën ndal (), e cila do të ndalojë riprodhimin në kornizën 1 në çdo rast, sepse kodi i kornizës së parë do të lexohet vetëm pas komandave të kornizës së dytë, nga e cila u hodhëm. Le të hedhim një vështrim në atë që duhet të kishim bërë në blic:

Rezultati: duke klikuar në butonin (butonin), bëjmë kalime ndërmjet kuadrit të parë dhe të dytë. Ky zbatim përdoret shumë shpesh në jetë kur, duke shtypur një buton, duhet të kryejmë një lloj ngjarjeje ose tranzicioni. Mund të përdoret gjithashtu në situata të ndryshme: kur duhet të ekzekutoni një lloj klipi (do të flas për këtë më vonë), ndryshoni paraqitjen e kornizës, vendosni komanda të tjera për kornizën, kryeni operacione llogaritëse dhe shumë më tepër. Mundohuni të eksperimentoni pak dhe ndryshoni me vendin e aplikimit të komandave dhe veprimeve që tashmë i njihni. Mezi pres të dëgjoj nga ju dhe pyetjet tuaja! :)

Artikujt kryesorë të lidhur