Laman

Showing posts with label flash. Show all posts
Showing posts with label flash. Show all posts

Game dakon atau congklak dengan flash

      Pernahkan pada masa kecil Anda bermain dakon? jika belum pernah mungkin Anda lahir di jaman yang sudah modern. Di Wikipedia Congklak adalah suatu permainan tradisional yang dikenal dengan berbagai macam nama di seluruh Indonesia. Biasanya dalam permainan, sejenis cangkang kerang digunakan sebagai biji congklak dan jika tidak ada, kadangkala digunakan juga biji-bijian dari tumbuh-tumbuhan dan batu-batu kecil.



Membuat Game Ping Pong Sederhana P2P Dengan Adobe Flash Builder


       Game kali ini yaitu game Ping Pong multiplayer berbasis jaringan LAN Peer to peer(P2P). Untuk membuatnya saya menggunakan aplikasi Adobe Flash Builder  4.6, untuk download Flash Builder bisa masuk ke website Adobe.






















1. Buat project baru(File>New>Flex Project).
2. Paste code dibawah ini.

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx"
               width="294" height="424" minWidth="955" minHeight="600">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
    <fx:Script>
        <![CDATA[
            import flashx.textLayout.factory.TruncationOptions;
           
            import org.osmf.events.TimeEvent;
            private var nc:NetConnection;
            private var group:NetGroup;
           
            [Bindable]
            private var speedx:int = 3;
            private var speedy:int = 3;
            private var nyawa1:int = 10;
            private var nyawa2:int = 10;
            private var timer:Timer = new Timer(25);
            private var obj:Object = new Object();
           
            public var host:Boolean = false;
           
            private function connect():void{
                nc = new NetConnection();
                nc.addEventListener(NetStatusEvent.NET_STATUS, netStatus);
                nc.connect("rtmfp:");
               
            }
           
            private function netStatus(event:NetStatusEvent):void{
                trace("[EVENT]\n"+event.info.code+"\n");
                switch(event.info.code){
                    case "NetConnection.Connect.Success":
                        setupGroup();
                        break;
                    case "NetGroup.Connect.Success":
                        //connected = true;
                        break;
                    case "NetGroup.Posting.Notify":
                        //mc.x = event.info.message.x;
                        //mc.y = event.info.message.y;
                        break;
                    case "NetGroup.Neighbor.Connect":
                        ballpos();
                        break;
                    case "NetGroup.Neighbor.Disconnect":
                        break;
                    // routed message received
                    case "NetGroup.SendTo.Notify":
                        if(!host){
                            ball.x = event.info.message.bx;
                            ball.y = event.info.message.by;
                        }
                        mc2.x = event.info.message.x;
                        //mc2.y = event.info.message.y;
                        live1.text = event.info.message.nyawa2.toString();
                        live2.text = event.info.message.nyawa1.toString();
                        winLabel.text = event.info.message.wintxt;
                        goPanel.visible = event.info.message.panel;
                        break;
                }
            }
           
            private function setupGroup():void{
                var groupspec:GroupSpecifier = new GroupSpecifier("myGroup");
                groupspec.postingEnabled = true;
                groupspec.routingEnabled = true;
                groupspec.ipMulticastMemberUpdatesEnabled = true;
                groupspec.addIPMulticastAddress("225.225.0.1:30303");
                group = new NetGroup(nc,groupspec.groupspecWithAuthorizations());
                group.addEventListener(NetStatusEvent.NET_STATUS,netStatus);
            }
           
            // enable dragging
            private function drag(e:MouseEvent):void {
               
                this.stage.addEventListener(MouseEvent.MOUSE_MOVE, moveMe);
               
            } // end drag function
           
            // Drop the object.
            private function drop(e:MouseEvent):void {
               
                this.stage.removeEventListener(MouseEvent.MOUSE_MOVE, moveMe);
               
            } // end drop function
           
            // Move the object in accordind of the mouse position
            private function moveMe(e:MouseEvent):void {
               
                // move movieclip to mouse position
                mc.x = this.mouseX - mc.width/2;
                //mc.y = this.mouseY - mc.height/2;
               
                // Save the current movieclip position
                obj.x = ((mc.x+mc.width)-(294))*-1;
                //obj.y = ((mc.y+mc.height)-(424))*-1;
               
                // Set sender id
                obj.sender = group.convertPeerIDToGroupAddress(nc.nearID);
               
                // Sends a message to all members of a group.
                //group.post(obj);
                group.sendToAllNeighbors(obj);
               
            } // end moveMe function
           
            //start game
            private function ballpos():void{
                ball.x = 63 + Math.random() * 150;
                ball.y = 212;
                timer.stop();
                timer.addEventListener(TimerEvent.TIMER,moveBall);
                timer.start();
            }
            private function moveBall(e:TimerEvent):void{
                if(host){
                    obj.main=false;
                    //===ball speed
                    ball.x +=speedx;
                    ball.y +=speedy;
                   
                    //=========collision stage=============
                    if(ball.y < 28){
                        speedy = -3;
                        //speedx = 3;
                        ball.y = 212;
                        ball.x = 63 + Math.random() * 150;
                        nyawa2 -= 1;
                        live2.text = nyawa2.toString();
                    }else if(ball.y > 388){
                        speedy = 3;
                        //speedx = 3;
                        ball.y = 212;
                        ball.x = 63 + Math.random() * 150;
                        nyawa1 -= 1;
                        live1.text = nyawa1.toString();
                    }
                    if (ball.x < 0){
                        ball.x = 0;
                        speedx *= -1;
                    }else if (ball.x > 293){
                        ball.x = 293 - ball.width;
                        speedx *= -1;
                    }
                   
                    //==========collision paddle=========
                    if(mc.hitTestObject(ball)){
                        if(ball.x>((mc.width/2)+4)){
                            speedx -=2;
                        }else if(ball.x<((mc.width/2)-4)){
                            speedx +=2;
                        }
                        if(speedy<10){
                            speedy +=1;
                            speedx +=1;
                        }
                        speedy *= -1;
                    }else if(mc2.hitTestObject(ball)){
                        if(ball.x>((mc2.width/2)+4)){
                            speedx -=2;
                        }else if(ball.x<((mc2.width/2)-4)){
                            speedx +=2;
                        }
                        if(speedy>-10){
                            speedy -=1;
                        }
                        speedy *= -1;
                    }
                   
                    //===score ball======
                    if(nyawa1 == 0){
                        timer.stop();
                        goPanel.visible=true;
                        winLabel.text="You Lose";
                        obj.wintxt="You Win";
                        obj.panel = true;
                    }else if(nyawa2 == 0){
                        timer.stop();
                        goPanel.visible=true;
                        winLabel.text="You Win";
                        obj.wintxt="You Lose";
                        obj.panel = true;
                    }
                    //====save the value====
                    obj.nyawa1= nyawa1;
                    obj.nyawa2= nyawa2;
                    obj.bx = ((ball.x+ball.width)-(294))*-1;
                    obj.by = ((ball.y+ball.height)-(424))*-1;
                    // Set sender id
                    obj.sender = group.convertPeerIDToGroupAddress(nc.nearID);
                    group.sendToAllNeighbors(obj);                       
                }
            }
           
            protected function join_clickHandler():void{
                connect();
                host = false;
               
                mc.visible = true;
                mc2.visible = true;
                mulai.visible = false;
                join.visible = false;
               
                live2.rotation = 180;
                live1.visible = true;
                live2.visible = true;
               
            }
           
            protected function mulai_clickHandler():void{
                connect();
                host=true;
               
                mc.visible = true;
                mc2.visible = true;
                mulai.visible = false;
                join.visible = false;
               
                live2.rotation = 180;
                live1.visible = true;
                live2.visible = true;
                obj.x=112;
                group.post(obj);
            }
           
           
        ]]>
    </fx:Script>
    <mx:HRule x="-23" y="212" width="341" height="3"/>
    <s:Ellipse x="95" y="161" width="104" height="104" id="tes">
        <s:stroke>
            <s:SolidColorStroke weight="2" color="#DDDDDD"/>
        </s:stroke>
    </s:Ellipse>
    <s:Rect width="293" height="423">
        <s:stroke>
            <s:SolidColorStroke color="#DDDDDD" weight="4"/>
        </s:stroke>
    </s:Rect>
    <s:Button id="ball" x="140" y="205" width="15" height="15" label="Ball" chromeColor="#FCFCFC"/>
    <s:Label id="live1" x="269" y="223" fontWeight="bold" text="10" visible="false"/>
    <s:Label id="live2" x="25" y="203" fontWeight="bold" text="10" visible="false"/>
    <s:Button id="mc" x="112" label="▬▬▬▬▬▬▬" fontFamily="Courier New" mouseDown="drag(event)"
              mouseUp="drop(event)" verticalCenter="190"/>
    <s:Button id="mc2" x="112" label="▬▬▬▬▬▬▬" fontFamily="Courier New" verticalCenter="-192"/>
    <s:Button id="mulai" x="112" y="187" label="Host" click="mulai_clickHandler()"
              enabled="true" fontWeight="bold"/>
    <s:Button id="join" x="112" y="218" label="Join" click="join_clickHandler()"
              fontWeight="bold"/>
    <s:Panel id="goPanel" x="30" y="140" width="235" height="144" title="Game Over" visible="false">
        <s:Label id="winLabel" x="10" y="35" width="213" height="34" fontSize="32"
                 text="Player X Win" textAlign="center" verticalAlign="middle"/>
    </s:Panel>
</s:Application>




Selamat mencoba. Semoga dapat membantu, dan menjadi inspirasi.

Platform Flash Game

     Membuat game petualangan sperti header pada postingan saya tanggal ini... Scriptnya sudah ada sedikit penjelasannya kok.

Play Demo
Download fla

Membuat Jam Analog Dengan Flash

      Untuk membuat jam analog dengan flash, pertama marilah kita buka dokumen flash baru dengan memilih dari menu file>new atau tekan (Ctrl+N), pilih flash document. selanjutnya buat sebuah lingkaran dengan kreasi anda untuk penunjuk jam, lalu seleksi lingkaran tersebut dan convert menjadi symbol movie clip dengan cara klik kanan lingkaran yang sudah di seleksi pilih Convert to Symbol atau ketak (F8). krmudian isikan name dengan lingkaran, pilih type movie clip dan registration ditengah.

Setelah itu buat sebuah garis lurus dan Convert menjadi Symbol dengan properti name diisi detik, Type pilih Movie clip, dan registration di bawah.
Setelah membuat movie clip detik isikan instance name dengan nama detik, kemudian buat dua buah garis lagi dengan properties yang sama seperti garis detik, tipenya movie clip registrasi di bawah, tetapi namanya berbeda. Pada gambar dibawah garis warna coklat name diisi menit dan instace name diisi menit, garis warna oranye name diisi jam dan instace name diisi jam.
Setelah semua garis dibuat dan di jadikan movie clip, taruh semua garis seperti gambar dibawah.
Selanjutnya klik kanan pada frame 1 pilih action atau tekan (F9) kemudian masukkan scritp dibawah ini.

_root.onEnterFrame = function() {
myDate = new Date();
jam._rotation = myDate.getHours()*30+(myDate.getMinutes()/2);
menit._rotation = myDate.getMinutes()*6+(myDate.getSeconds()/10);
detik._rotation = myDate.getSeconds()*6;
};

Untuk melihat hasilnya tekan (Ctrl+Enter).

Selamat mencoba. Semoga berhasil dan menjadi inspirasi anda serta pengalaman yang menyenangkan.
Contoh file dapat di download disini

Membuat Jam Dan Tanggal Digital Dengan Flash

       Pembahasan kali ini akan menjelaskan cara membuat jam dan tanggal digital dengan flash. Pertama-tama marilah buka dokumen flash baru dengan memilih dari menu file>new atau tekan (Ctrl+N), pilih flash document. Untuk membuat jam dan tanggal digital kita perlu membuat teks Dinamis(Dinamic Text). Buat text dengan memilih text tool atau tekan (T), kemudian beri nama variabel dengan nama jamku. Anda bisa memberikan properties yang sama seperti gambar dibawah.
Setelah itu buat lagi Dynamic Text dengan nama variabel kalender.
Selanjutnya klik kanan pada frame 1 pilih Action atau tekan (F9).
Kemudian masukkan script dibawah ini seperti gambar dibawah.

onEnterFrame = function () {
 waktu = new Date();
 jam = waktu.getHours();
 menit = waktu.getMinutes();
 detik = waktu.getSeconds();
 if (jam<10) {
  jam = "0"+jam;
 }
 if (menit<10) {
  menit = "0"+menit;
 }
 if (detik<10) {
  detik = "0"+detik;
 }
 if (jam<12) {
  ampm = "AM";
 }
 if (jam>12) {
  ampm = "PM";
 }
 jamku = jam+" : "+menit+" : "+detik+"  "+ampm;
};
tanggal = new Date();
hari = ["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"];
bulan = ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"];
kalender = hari[tanggal.getDay()]+", "+tanggal.getDate()+" "+bulan[tanggal.getMonth()]+" "+tanggal.getFullYear();
gotoAndPlay(1);

Untuk melihat hasilnya tekan (Ctrl+Enter).

Selamat mencoba. Semoga berhasil dan menjadi inspirasi anda serta pengalaman yang menyenangkan.
Contoh file dapat di download disini

Membuat Game Pertualangan Dengan Flash Bag.2

     Pada pembahasan kali ini panggung area akan dibuat lebih lebar, sehingga pemain bisa bergerak lebih lebar daripada latihan sebelumnya. Caranya sangat mudah sekali. Anda hanya tinggal menambahkan script dibawah ini di dalam script fungsi pemain(player).
// platform menggulung secara horizontal
if (p._x>=340 && t._x>=-(t._width-605)) {
 p._x = 339;
 t._x -= walk_speed;
}
if (p._x<=261 && t._x<=0) {
 p._x = 262;
 t._x += walk_speed;
}
Saran saya masukkan script di atas(platform menggulung secara horizontal) di atas script di bawah ini.
//jika player jatuh melebihi platform 
if (p._y>=600) {
 p._x = 80;
 p._y = 180;
}
contoh gambar panggung area yang akan dibuat seperti ini.


Setelah selesai menggambar dan memasukkan script, untuk melihat hasilnya tekan (Ctrl+Enter).
Selamat mencoba. Semoga berhasil dan menjadi inspirasi anda serta pengalaman yang menyenangkan.
Contoh file dapat di download disini

Membuat Tombol Pada Flash

     Pada pembahasan kali ini akan dijelaskan bagaimana cara membuat tombol dengan flash. Pertama-tama marilah buka lembar kerja baru dengan file type flash document. Seletah itu gambar tombol kreasi Anda. Saya menggambar tombol seperti ini.
kemudian blok semua gambar dan klik kanan gambar yang di blok, lalu pilih Convert to Symbol...

Setelah itu pada Type pilih pilihan Button, pilih Registration di tengah dan beri Nama tombol kemudian klik Ok.
Untuk memberi animasi saat kursor mouse berada di atas movie clip tombol maupun saat tombol ditekan. double click pada movie clip tombol kemudian klik kanan pada frame 2(over/saat kursor diatas tombol) pilih Insert Keyframe, kemudian edit sesuka hati.
Untuk animasi saat tombol di klik, pilih frame 3(Down/Saat di klik) klik kanan pilih Insert Keyframe, kemudian edit sesuka hati.
Setelah itu tekan (Ctrl+Enter) untuk melihat hasil.
Selamat mencoba. Semoga berhasil dan menjadi inspirasi anda serta pengalaman yang menyenangkan.
Contoh file dapat di download disini

Membuat Game Pertualangan Dengan Flash

   Dalam Pembahasan kali ini akan dijelaskan bagaimana cara membuat sendiri game pertualangan
sederhana dengan menggunakan aplikasi flash. Untuk membuat game tersebut sebelumnya kita harus tau apa saja yang diperlukan untuk membuat game pertualangan. Dalam logika, saat memainkan game kita menggerakkan pemain berjalan di panggung permainan. berarti, kita membutuhkan dua objek, yaitu pemain dan panggung area. detail dari kedua objek tersebut:
•> Pemain
   - Dapat berjalan ke kanan
   - Dapat berjalan keKekiri
   - Dapat Loncat
   - Jatuh terkena gravitasi
•> Panggung
   - Tempat pijakan pemain
  Dari hipotesa atau kesimpulan awal tadi, marilah memulai membuat game pertualangan dengan tangan
sendiri dengan membuka dokumen baru.
1. Tekan (Ctrl+N) pilih flash document, kemudian klik kanan pada lembar kerja pilih Document Properties maka akan muncul jendela dialog. kemudia isikan angka 30 pada Frame Rate, Dimension 600 x 400 dan Background color putih, Setelak itu Klik Ok.


2. Setelah itu menggambar sebuah pemain. Disini saya menggunakan Rectangle Tool(R) untuk membuat pemain. Anda bisa kreasikan sendiri pemain anda.

3. Kemudian seleksi pemain dan klik kanan pada pemain, pilih Convert to Symbol..

4. Beri nama pemain dengan nama "player" pada kolom name, pilih Movie Clip pada pilihan type, dan pilih poros di tengah pada pilihan Registration, kemudian klik OK.

5. Kemudian klik Movie clip player dan berikan nama instansi di properties>Instance Name dengan nama instansi "player".

6. Setelah itu gambar panggung area untuk tempat berjalan pemain. Disini saya juga menggunakan Rectangle Tool(R) untuk membuat panggung seperti gambar dibawah. Kemudian, seleksi semua gambar panggung area, buat menjadi Movie clip dengan klik kanan pilih Convert to Symbol.

7. Beri nama "tanah" pada kolom Name, pilih Movie Clip pada pilihan Type, dan tentukan registration, kemudian klik OK.

8. Kemudian klik Movie clip tanah dan berikan nama instansi di properties>Instance Name dengan nama instansi "tanah".

9. Setelah itu klik kanan pada layer1 frame pertama, pilih Actions.

10. Masukkan kode dibawah ini pada jendela Actions.

//Kode dibawah ini disertai dengan penjelasan\\
stop();
//deklarasi platform
t = _root.tanah;
//deklarasi player
p = _root.player;
xspeed = 0;
yspeed = 0;
max_yspeed = 10;
walk_speed = 4;
// keadaan saat loncat ya
jumping = true;
// gravitasi & kekuatan loncat
gravity = 1;
jump_power = 10;
//fungsi player dalam frame
player.onEnterFrame = function() {
 //jika ditekan ke kiri
 if (Key.isDown(Key.LEFT)) {
  xspeed = -walk_speed;
 }
 //jika ditekan ke kanan 
 if (Key.isDown(Key.RIGHT)) {
  xspeed = walk_speed;
 }
 //jika ditekan tombol ke atas dan tidak saat loncat 
 if ((Key.isDown(Key.UP)) and !jumping) {
  yspeed -= jump_power;
  jumping = true;
 }
 //--------script jatuh seakan2 terkena grafitasi-----------\\ 
 // jika keadaan saat loncat                    
 if (jumping) {
  yspeed += gravity;
 }
 //jika yspeed>max_yspeed 
 if (yspeed>max_yspeed) {
  yspeed = max_yspeed;
 }
 //--------akhir script seakan2 terkena gravitasi-----------------\\ 
 //jika platform dibawah kaki dan tidak saat loncat dan tidak saat naik
 if (level_under_my_feet() and !jumping) {
  yspeed = 0;
 }
 // memerintahkan player untuk melakukan gerakan 
 // ->masukkan nilai-nilai x, y player ke dalam variabel forecast
 forecast_x = this._x+xspeed;
 forecast_y = this._y+yspeed;
 // mengontrol platform
 //ketika platform menyentuh bagian bawah player lakukan
 while (t.hitTest(forecast_x, forecast_y+this._height/2-1, true)) {
  forecast_y--;
  xspeed = 0;
  yspeed = 0;
  jumping = false;
 }
 //ketika platform menyentuh bagian atas player lakukan
 while (t.hitTest(forecast_x, forecast_y-this._height/2, true)) {
  forecast_y++;
  yspeed = 0;
 }
 //ketika platform menyentuh bagian kiri player lakukan
 while (t.hitTest(forecast_x-this._width/2+1, forecast_y, true)) {
  forecast_x++;
  xspeed = 0;
 }
 //ketika platform menyentuh bagian kanan player lakukan
 while (t.hitTest(forecast_x+this._width/2, forecast_y, true)) {
  forecast_x--;
  xspeed = 0;
 }
 //kembalikan nilai forecast ke player agar player begerak sesuai event
 this._x = forecast_x;
 this._y = forecast_y;
 // hentikan gerakan setelah event terjadi
 xspeed = 0;
 //membatasi lebar gerak karakter 
 if (p._x-(p._width/2)<=0) {
  p._x = p._width/2;
 } else if (p._x+(p._width/2)>=600) {
  p._x = 600-(p._width/2);
 }
 //jika player jatuh melebihi platform 
 if (p._y>=600) {
  p._x = 80;
  p._y = 180;
 }
 if (t.hitTest(player._x, player._y+player._height/2, true)) {
  jumping = false;
 } else {
  jumping = true;
 }
};
//end finction player
//fungsi platform ketika dibawah  player
function level_under_my_feet() {
 return t.hitTest(player._x, player._y+player._height/2, true);
}
11. Setelah itu tekan (Ctrl+Enter) untuk melihat hasil
  Script di atas hanyalah salah satu dari logika-logika yang saya berikan, anda bisa menambah dan menggunakan logika-logika kreasi anda. Apabila ingin mengedit panggung area, tinggal dobel klik movie clip tanah dan edit sesuka hati.
Selamat mencoba. Semoga berhasil dan menjadi inspirasi anda serta pengalaman yang menyenangkan.
Contoh file dapat di download disini

Mengganti Kursor Mouse Pada Flash

    Dalam membuat kursor di flash, logika sederhana yang digunakan yaitu menghilangkan
mouse dan membuat gambar bergerak sama dengan gerakan mouse.
1. buat dokumen baru.
2. kemudian gambar sebuah mouse.

















3. Setelah itu seleksi gambar dan jadikan movie clip dengan klik kanan pada gambar yang
akan dijadikan movie clip > pilih convert to symbol.

















4. Berikan nama mouse pada kolom name, Movie clip pada pilihan Type, dan pilih pojok kiri
atas pada untuk registration. Klik OK.


















5. Berikan nama kursormouse pada kolom instance name.


















6. Kemudian masukkan kode dengan klik kanan pada frame pertama layer 1 pilih action.

















7. Masukkan kode berikut.
onEnterFrame=function(){
//untuk menghilangkan mouse
Mouse.hide();
//untuk menggerakkan gambar sama dengan gerakan mouse
startDrag("kursormouse",true);
}

















8. Tekan (Ctrl+Enter) untuk melihat hasilnya.


Selamat mencoba. Semoga berhasil dan menjadi inspirasi anda serta pengalaman yang menyenangkan.
Contoh file dapat di download disini

Flash Menu Kustom Klik Kanan

      Menu ini digunakan saat menklik kanan pada flash yang sedang di putar. untuk membuatnya:
langkah 1: Buka dokumen baru di flash (Ctrl+N)
langkah 2: Klik kanan frame pertama, pilih Action.
langkah 3: Masukkan kode berikut pada kolom action.

// Kelas ContextMenu menyediakan runtime kontrol atas item dalam menu konteks Flash Player yang muncul ketika hak pengguna-klik (Windows) atau Control-klik (Macintosh) pada Flash Player.
var con: ContextMenu = new ContextMenu ();
// Sembunyikan semua built-in menu (kecuali Settings) pada objek tertentu ContextMenu
con.hideBuiltInItems();
// membuat menu item baru event handler yang disebut di klik
var menu_baru:ContextMenuItem = new ContextMenuItem("hangs_blog",klik_kanan);
//menambahkan item baru ke menu konteks
con.customItems.push(menu_baru);
function klik_kanan() {
//memanggil alamat saat di klik
getURL("http://hangsbreaker.blogspot.com/","_blank")
// Asosiasi con objek ContextMenu
}_root.menu = con;

langkah 4: Tekan (Ctrl+Enter) untuk menjalankan dan klik kanan pada flash tersebut maka lihat hasilnya.

Selamat mencoba. Semoga berhasil dan menjadi inspirasi anda serta pengalaman yang menyenangkan.

Membuat Motion Tween

     Motion tween adalah animasi dengan menggunakan garis sebagai jalur animasinya
Langsung saja untuk membuatnya.

1. Buka lembar kerja baru.(Saya menggunakan lembar kerja standar, ukuran 600 x 400).

2. Gambar lingkaran dengan menggunakan Oval tool (O).


3. Seleksi gambar lingkaran kemudian klik kanan pilih Convert to symbol pada pilihan nomer 2 dari bawah. Maka akan muncul jendela pilihan seperti pada gambar. Pilih Type symbol Movie clip, beri nama pada kolom nama(saya menggunakan nama “bola”), tentukan poros Movie clip pada pilihan Registration. Setelah itu klik OK.


4. Setelah itu pilih layer add Motion Guide.


5. Gambar garis pada Motion Guide layer dengan penggunakan Pencil tool(Y) / Line tool(N),(disini saya menggambar garis berputar yang ujungnya tidak bertemu), kemudian taruh movie clip bola pada ujung garis.


6. Klik kanan pada frame 95 layer guide pilih insert frame.


7. Klik kanan pada frame 95 layer yang berisi movie clip bola pilih insert Keyframe.


8. Pindahkan movie clip bola yang berada pada frame 95 ke ujung garis lainnya.


9. Klik kanan pada frame 1 layer yang berisi movie clip, pilih Create Motion Tween


10. Pilih menu Control > Test Movie atau tekan (Ctrl + Enter)

Selamat mencoba. Semoga berhasil dan menjadi inspirasi anda serta pengalaman yang menyenangkan.
Contoh file dapat di download disini