Jump to content
Planeta.Ge

ფლეშ საათის გაკეთება


Recommended Posts

თავიდანვე აუცილებელია საათის ატრიბუტების გაკეთება. ასეთებია: ციფერბლატი, წამის, წუთის და საათის ისრები. შეიძლება ფანტაზია განვავრცოთ და ელექტრო-საათიც ჩავაყენოთ ამ ჩვენს ისრებიან საათში. ყურადღება მიაქციეთ ისრების ცენტრს. ისინი აუცილებლად ისრის ბოლოში და ამავე დროს ციფერბლატის ცენტრშიც იყვნენ. წინააღმდეგ შემთხვევაში საათი ლამაზი არ გამოვა .

ატრიბუტების გამზადების შემდეგ საჭიროა მათ სახელები დავარქვათ 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 saaTi

dro = 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 saaTi

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;

}

_root.hour = saati;

_root.min = wuti;

_root.sec = wami;

}

ლინკი
სოციალურ ქსელებში გაზიარება

კაი კოდი გასაგებია, მარა იქნებ აგვიხსნა ნოტეპადში ჩავწეროთ ეს სკრიპთი? :)

ან მერე რა გაფართოებით შევინახოთ?

ლინკი
სოციალურ ქსელებში გაზიარება

  • 7 months later...

პლანეტაძე

 

ელექტრო საათის უფრო მარტივად გაკეთების გზაც არსებობს.. :nekro: AC2 ში. :givi: :) დავწერ ცოტა ხანში.. :)

ლინკი
სოციალურ ქსელებში გაზიარება

  • 2 years later...
  • 4 months later...

შეუერთდი განხილვას

თქვენ შეგიძლიათ შექმნათ პოსტი ახლა და დარეგისტრირდეთ მოგვიანებით. თუ თქვენ გაქვთ ანგარიში, გაიარეთ ავტორიზაცია რათა დაპოსტოთ თქვენი ანგარიშით.

Guest
ამ თემაში პასუხის გაცემა

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • შექმენი...