Bexx Posted September 28, 2009 დარეპორტება გაზიარება Posted September 28, 2009 თავიდანვე აუცილებელია საათის ატრიბუტების გაკეთება. ასეთებია: ციფერბლატი, წამის, წუთის და საათის ისრები. შეიძლება ფანტაზია განვავრცოთ და ელექტრო-საათიც ჩავაყენოთ ამ ჩვენს ისრებიან საათში. ყურადღება მიაქციეთ ისრების ცენტრს. ისინი აუცილებლად ისრის ბოლოში და ამავე დროს ციფერბლატის ცენტრშიც იყვნენ. წინააღმდეგ შემთხვევაში საათი ლამაზი არ გამოვა .ატრიბუტების გამზადების შემდეგ საჭიროა მათ სახელები დავარქვათ instans-ზე. მაშ ასე წამის ისარს ერქვას წამი, წუთისას- წუტი, საათისას- საატი, ხოლო ციფერბლატს დავარქვათ გამგე. ასევე თუ ელექტრო საათსაც ჩავამატებთ, დავაგდოთ 3 ტექსტური მასივიც, სახელებად hour, min და sec. მათ შორის სილამაზისათვის შეიძლება ორი წერტილის ციმციმის ანიმაციაც ჩასვას კაცმა.დავიწყოთ! ვნახოთ გამგეს actions-ი და ჩავწეროთ:onClipEvent (enterFrame) {dro = new Date(); ანუ ყოველი კადრის გავლისას ცვლად dro-ს მიენიჭოს მოცემულ მომენტში არსებული დრო. ახლა საჭიროა ამ დროიდან გამოიყოს საათები, წუთები და წამები. ეს კეთდება ასე: wamebi = dro.getSeconds();wutebi = dro.getMinutes();saatebi = dro.getHours(); ახლა უკვე გვაქვს სამი მონაცემი. საჭიროა ისრების მდგომარეობაზე ავსახოთ მათი მნიშვნელობები. თითოეული ისარი ასრულებს 360 გრადუსიან ბრუნს ერთი ციკლის განმავლობაში. ამასთან წამისა და წუთის ისრები აკეთებენ ერთ ბრუნს და მერე ისევ თავიდან იწყებენ, მაგრამ საათის ისარი აკეთებს 2 ბრუნს _ ჯერ ღამის 00 საათიდან შუადღის 12 საათამდე და მერე 12 საათიდან ღამის 00 საათამდე. ასე რომ პატარა ტვინის განძრევა იქნება საჭირო. შევხედოთ სკრიპტს: wamisisristriali = 360*(wamebi/60);wutisisristriali = 360*(wutebi/60)+(6*wamisisristriali/360);saatisisristriali = 360*(saatebi/12)+(30*wutisisristriali/360); ამ ცვლადებში ჩაიწერება ის კუთხე, რომლითაც უნდა მობრუნდეს თითოეული ისარი. წამის ისარი აკეთებს 360 გრადუსიან ბრუნს. ცვლადი wamebi კი იღებს მნიშვნელობას 0 დან 60 მდე. ანუ 360*(wamebi/60) ფორმულიდან გამომდინარე wamisisristriali მიიღებს მნიშვნელობას 0 დან 360 მდე, როგორც ჩვენ გვინდოდა. wutisisristriali ცოტა უცნაურია იმ მხრივ, რომ მას დამატებული აქვს მეორე განყოფილებაც: (6*wamisisristriali/360). I განყოფილება გამოითვლის წუთის ისრის სავალდებულო მდგომარეობას, ანუ II განყოფილების გარეშეც იმუშავებდა წუთის ისარი, მაგრამ ისე იხტუნავებდა წუთიდან წუთზე, კაცს ნიკოლოზის იქით რომ მეფე იყო, იმ დროინდელი ეგონება. ამიტომ დავამატოთ II განყოფილება, რომელიც წუთის ისარს უფრო მდორედ ანუ "პლავად" გადაიყვანს ერთი წუთის მდგომარეობიდან მეორეში. 6 იმიტომ წერია, რომ ციფერბლატის 2 დანაყოფს შორის კუთხე სწორედ 6 გრადუსია. საათის ისარსაც სჭირდება "პლავნი" გადასვლები და ამიტომაცაა დამატებული II განყოფილება. 30 ნიშნავს 5 დანაყოფს ციფერბლატზე, როგორც ერთი საათის კუთხეს. აქ საინტერესო უფრო I განყოფილებაა. აქ წერია, რომ კუთხე უდრის 360*(saatebi/12)-ს. რატომ ვყოფთ 12 ზე და არა 24 ზე? იმიტომ, რომ ეგეთ საათებს პლატონი უცქეროდა და ჩვენ კიდევ ნეოს რომ საათი აქვს, ეგეთი გვინდა. ანუ საათის ისარი აკეთებს არა 360, არამედ 720 გრადუსიან კუთხეს, რაც 2 ბრუნს უდრის "იმენა". გავაგრძელოთ ახლა! საჭიროა ამ კუთხეების ისრებზე გადატანა. ეს კეთდება ოპერატორით _root.saxeli._rotation: _root.wami._rotation = wamisisristriali;_root.wuti._rotation = wutisisristriali;_root.saati._rotation = saatisisristriali; თუ სახელები და სკრიპტი სწორედაა დაწერილი, ვიღებთ მაგარ საათს. ახლა დიზაინიღაა დასახვეწი. გადავიდეთ ელექტრო საათზე. აქ საჭირო იქნება ზემოთ აღნიშნული 3 ტექსტური მასივი თავისი სახელებით. აგეთვე საჭიროა ზემოთ ნახსენები ცვლადები dro = new Date();wamebi = dro.getSeconds();wutebi = dro.getMinutes();saatebi = dro.getHours(); ესენი აუცილებელია მაშინ, როცა მარტო ელექტრო საათს ვაკეთებთ. თუ ელექტრო ინტეგრირებულია ისრიანთან, მაშინ მათი გამეორებით დაწერა არაა საჭირო. ანუ ამ შემთხვევაში მხოლოდ ტექსტური მასივებია საჭირო სახელებითურთ. თითოეულ ტექსტურ მასივში უნდა ეტეოდეს 2 რიცხვი. მაგრამ ზოგჯერ ცვლადების მნიშვლელობა 1 სიმბოლოსგან შედგება. ამის გამო აუცილებელია მათი 2 ელემენტიან ცვლადად გადაქცევა, რაც ხდება ასე: if (wamebi<10) {wami = "0"+wamebi;} else {wami = wamebi;}if (wutebi<10) {wuti = "0"+wutebi;} else {wuti = wutebi;}if (saatebi<10) {saati = "0"+saatebi;} else {saati = saatebi;} თუ რომელიმე ცვლადის მნიშვნელობა 1 სიმბოლოიანია და ასე ხდება როდესაც ისინი 0 დან 9 მდე არიან (<10), მაშინ მათ წინ ემატება 0 ("0"+). ასე ვიღებთ 2 ელემენტიან ცვლადებს. დაგვრჩა მხოლოდ მათი გამოსახვა: _root.hour = saati;_root.min = wuti;_root.sec = wami; და ბოლოს, თუკი საათმა არასწორედ აჩვენა დრო და კერძოდ საათი, მაშინ ცვლადს saatisisristriali მიუმატეთ ან გამოაკლეთ სასურველი საათების რაოდენობა დამთავრდა საათის გაკეთებაც, თუ რამე ვერ გავიგეთ აი ეს FLA საათი გააკეთა თელავმა და შეგიძლიათ გადაწეროთ და გაერკვეთ ყველაფერში, აი ამ საათის სკრიპტიც: onClipEvent (enterFrame) {// ciperblatiani saaTidro = new Date();wamebi = dro.getSeconds();wutebi = dro.getMinutes();saatebi = dro.getHours();wamisisristriali = 360*(wamebi/60);wutisisristriali = 360*(wutebi/60)+(6*wamisisristriali/360);saatisisristriali = 360*(saatebi/12)+(30*wutisisristriali/360);_root.wami._rotation = wamisisristriali;_root.wuti._rotation = wutisisristriali;_root.saati._rotation = saatisisristriali;// eleqtro saaTiif (wamebi<10) {wami = "0"+wamebi;} else {wami = wamebi;}if (wutebi<10) {wuti = "0"+wutebi;} else {wuti = wutebi;}if (saatebi<10) {saati = "0"+saatebi;} else {saati = saatebi;}_root.hour = saati;_root.min = wuti;_root.sec = wami;} Quote ლინკი სოციალურ ქსელებში გაზიარება More sharing options...
Roman Posted September 29, 2009 დარეპორტება გაზიარება Posted September 29, 2009 კაი კოდი გასაგებია, მარა იქნებ აგვიხსნა ნოტეპადში ჩავწეროთ ეს სკრიპთი? ან მერე რა გაფართოებით შევინახოთ? Quote ლინკი სოციალურ ქსელებში გაზიარება More sharing options...
Lord Borgeze Posted May 13, 2010 დარეპორტება გაზიარება Posted May 13, 2010 პლანეტაძე ელექტრო საათის უფრო მარტივად გაკეთების გზაც არსებობს.. :nekro: AC2 ში. დავწერ ცოტა ხანში.. Quote ლინკი სოციალურ ქსელებში გაზიარება More sharing options...
lasha_alo Posted May 15, 2012 დარეპორტება გაზიარება Posted May 15, 2012 დავწერ ცოტა ხანში.. მგონი გიცანი :დ Quote ლინკი სოციალურ ქსელებში გაზიარება More sharing options...
NEX-OF Posted October 2, 2012 დარეპორტება გაზიარება Posted October 2, 2012 Bexx Quote ლინკი სოციალურ ქსელებში გაზიარება More sharing options...
Recommended Posts
შეუერთდი განხილვას
თქვენ შეგიძლიათ შექმნათ პოსტი ახლა და დარეგისტრირდეთ მოგვიანებით. თუ თქვენ გაქვთ ანგარიში, გაიარეთ ავტორიზაცია რათა დაპოსტოთ თქვენი ანგარიშით.