<<< 3D კარუსელის კოდი >>>
აბა, ფლეშერებო, სასიხარულო ამბებით მოგესალმებით. ამ თემაში ცოტა, მაგრამ მაინც სასარგებლო ლინკები დაიდო. მე გადავხედე ზოგიერთ ლინკს და ბაზრობა.ინფო-ს ქართულენოვანი გაკვეთილებიც უფრო გამდიდრდა ახალი მუღამებით. ერთერთი მუღამი მინდა თქვენც გაგიზიაროთ. მისი გაკეთება ბევრს არაფერს მოითხოვს. უბრალოდ ჩააკოპირეთ კოდი ექშენების პანელში და მიყევით ქვემოთ ჩამოთვლილ ინსტრუქციებს. კოდს განმარტებები ქართულად აქვს დართული და ვისაც ჯერ კიდევ ახსოვს სკოლის მათემატიკა (ტრიგონომეტრია), შეუძლია თავად გადახარშოს კოდი და თავისი მოდიფიკაციები შეიტანოს მასში. შემდეგ კი კარგი იქნება თუ გაგვიზიარებს ფორუმელ ფლეშერებს.
კოდის საბოლოო ვარიანტზე კიდევ ვმუშაობ, ამიტომ აქ დავდე კოდი იმ ეტაპამდე, რომელიც უკვე საბოლოო ვარიანტად მივიჩნიე მოცემული ეტაპისთვის. კოდზე დამატებები და შემდგომი ოპტიმიზაცია კარგი იქნებოდა თქვენგანაც გვეხილა.
მაშ, ასე - კოდის წინაპირობა:
1. ტილოზე დახატეთ მართკუთხედი და გარდაქმენით მუვიკლიპად და დაარქვით aguri
2. შედით მუვიკლიპის დროის სახაზავზე და შექმენით მეორე ფენა, რომელშიც ჩასვით დინამიური ტექსტი. ტექსტს დაარქვით სასკრიპტო სახელი n_txt . ეს ტექსტური ჩარჩო აუცილებელი არ არის, მაგრამ დაგეხმარებათ გაარკვიოთ, რომელ ნომერ ობიექტთან გექნებათ საქმე და ძლიან კარგია კარუსელის კოდის გასაანალიზებლად. როცა ქმნით ტექსტურ ჩარჩოს, არ დაგავიწყდეთ ფონტის იმპორტირება ბიბლიოთეკაში, სადაც აუცილებელი სიმბოლოები უნდა მონიშნოთ, რომლის გამოტანასაც აპირებთ მასში.
3. ბიბლიოთეკაში მუვიკლიპს დააწყაპუნეთ მაუსის მარჯვენა ღილაკით და კონტექსტური მენიუდან აირჩიეთ Properties...
4. გამოსულ დიალოგურ ფანჯარაში მონიშნეთ Export for ActionScript, Class-ის ველში გამოჩნდება იგივე სახელი, რაც ქვია თვენს მუვიკლიპს ბიბლიოთეკაში aguri. დატოვეთ ყველაფერი, როგორც არის და დააჭირეთ OK-ს და მერე კიდევ OK-ს მეორე პატარა ფანჯარაში.
5. ტილოდან წაშალეთ თვენს მიერ დახატული ობიექტი, რადგან მას უკვე კოდი გამოიტანს.
6. ექშენების პანელში ჩააკოპირეთ ეს კოდი და დატესტეთ თქვენი ნამუშევარი:
var total:Number = 6; // ვაფიქსირებთ ობიექტების რაოდენობას კარუსელში
var radiusX:Number = 200; // ელიფსის ზედა და ქვედა მხარეების რადიუსი
var radiusY:Number = 100; // ელიფსის გვერდითა მხარეების რადიუსი
var centerX:Number = stage.stageWidth/2; // ტილოს ცენტრის გამოთვლა X ღერძზე
var centerY:Number = stage.stageHeight/2; // ტილოს ცენტრის გამოთვლა Y ღერძზე
// ციკლი, რომელსაც ბიბლიოთეკიდან გამოაქვს ობიექტები ტილოზე
for(var i:uint = 0; i<total; i++)
{
var a:aguri = new aguri(); // აგურის კლასის ობიექტის შექმნა ტილოზე
a.kutxe = i * (Math.PI*2/total); // ახლად შექმნილ ობიექტს შგვიძლია ეგრევე შევუქმნათ ნებისმიერი პარამეტრი. აქ პარამეტრი kutxe. ახალი კუთხის გრადუსის გამოთვლა ხდება ციკლის ეტაპის გადამრავლებით ერთი ობიექტის კუთხის გრადუსზე. მაგალითად, თუ გვაქვს 6 ობიექტი, მაშინ 360 გრადუსიანი წრეწირი დაიყოფა 6 ნაწილად. შესაბამისად 1 ობიექტის კუთხე იქნება 60 გრადუსის ტოლი.
a.x = centerX +(radiusX * Math.cos(a.kutxe)); // ობიექტის x კოორდინატის გამოთვლა ცენტრში გასწორებით.
a.y = centerY +(radiusY * Math.sin(a.kutxe)); // ობიექტის y კოორდინატის გამოთვლა ცენტრში გასწორებით.
addChild(a); // ობიექტის გამოტანა ტილოზე
a.n_txt.text = i.toString(); // მუვიკლიპის შიგნით არსებულ დინამიურ ტექსტურ ველში i ცვლადის მნიშვნელობის გამოტანა ტექსტური სტრიქონის სახით
a.addEventListener(Event.ENTER_FRAME, animate); // ობიექტზე მოვლენის მსმენელის დადება კადრული ანიმაციისათვის
}
function animate(e:Event):void // ანიმაციის ფუნქციის დეკლარირება
{
e.target.x = centerX + (radiusX * Math.cos(e.target.kutxe)); // ფუნქციისთვის მიმდინარე ობიექტის x კორდინატის გამოთვლა ცენტრში გასწორებით
e.target.y = centerY + (radiusY * Math.sin(e.target.kutxe)); // ფუნქციისთვის მიმდინარე ობიექტის y კორდინატის გამოტვლა ცენტრში გასწორებით
e.target.kutxe +=.03; // ფუნქციისთვის მიმდინარე ობიექტის კუთხის პარამეტრის ზრდა 3 გრადუსით (0.03)
// კარუსელზე 3D ეფექტის დადება
e.target.scaleX = e.target.y / (centerX + centerY); // სიგანის მასშტაბირება y ღერძთან მიმართებით
e.target.scaleY = e.target.y / (centerX + centerY); // სიმაღლის მასშტაბირება y ღერძთან მიმართებით
}
7. 3D კარუსელის გაკვეთილის დასასრული
თუ რამე კითხვები გაგიჩნდებათ მომწერეთ ან დამეკონტაქტეთ
http://www.bazroba.info -ზე მითითებულ კონტაქტებზე...
ასევე ადევნეთ თვალი ბაზრობა.ინფო-ს უფასო ქართულენოვან ვიდეო გაკვეთილებს. ვეცდები ყოველკვირეულად დავდო, როგორც ეს ძველ ბაზრობაზე მქონდა ხოლმე.
* * *
>>> თხოვნა >>>
ეს თემა ეძღვნება ActionScript 3.0-და ეცადეთ თქვენი პოსტები AS3.0-ის შესახებ იყოს და არა ძველ ვერსიაზე. დამწყებები შეიძლება შეცდომაში შევიდნენ და წინსვლის ნაცვლად უკან დახევა გამოუვიდეთ ექშენსკრიპტის სწავლაში. ახალი ექშენსკრიპტი ბევრად უფრო სრულყოფილი და ძლიერია, ვიდრე მისი მეორე (და შესაბამისად პირველი) ვერსია. მესმის, რომ პროგრამირების ენის სწავლის დაწყება ძალიან ძნელი შეიძლება აღმოჩნდეს ზოგიერთებისთვის, განსაკუთრებით მათთვის, ვისაც არც შეხება ქონია პროგრამირებასთან და არც ინგლისური იცის საკმარისად, რათა გაერკვეს ბრძანებების შინაარსში. ამიტომაც ვაკეთებ ბაზრობა,ინფო-ზე პროგრამირების ქართულენოვან შემსწავლელ კურსს, რათა ქართველებს ინგლისური ენის მინიმალური ან სრული არ- ცოდნის პირობებში გაუადვილდეს კოდში გარკვევა და მისი წერა. ბაზრობა.ინფო 2006 წლიდან ამუშავებს და წერს ქართულენოვან სასწავლო მასალებს. ActionScript 3.0-ზე სასწავლო მასალების წერა კი 2009 წლიდან დავიწყეთ.
იმედი მაქვს, რომ ფორუმის ამ პაწაწინა კუთხეში, რომელსაც ეს თემა წარმოადგენს, თავს მოიყრის ქართულენოვანი სასწავლო მასალები ანდა მითითებები სად და როგორ მოვიპოვოთ სასწავლო მასალები ქართველმა ფლეშერებმა.