Warning: strpos() [function.strpos]: needle is not a string or an integer in /home/wahyukur/public_html/blog/index.php on line 71
Welcome to Wahyu Kurniawan's Blog
Webcam dari Flash 
Mengaktifkan webcam lewat flash ternyata tidak terlalu sulit. Pertama2 kita perlu memasukkan komponen video ke dalam stage, yang kita beri nama misalnya inputVideo. Kemudian pada frame, kita perlu ketikkan action scriptnya sebagai berikut:

import flash.display.*;
//import flash.geom.*;

//Webcam initalisation
cam = Camera.get();
cam.setMode(320,240,30,true);
inputVideo.attachVideo(cam);

//Create output data
outputVideo = new BitmapData(320, 240);
onEnterFrame = function () {
outputVideo.draw(inputVideo);
}

//_root.attachBitmap(outputVideo,10);


Yang jadi masalah sekarang adalah bagaimana kita bisa menyimpan gambar yang sudah dicapture ke dalam format bitmap? Aplikasi ini dapat digunakan untuk pengambilan foto member secara langsung pada program web based kita.

[ add comment ] ( 551 views )   |  permalink  |   ( 3.1 / 158 )
fps - Frame per Second di Flash 
Jika kita mendengar istilah fps (Frame per Second), kita langsung diingatkan dengan movie atau video, karena istilah ini memang mengatur jumlah frame yang ditayangkan per detik.
Di dalam Flash, fps sangat penting dalam mengatur kecepatan animasi. Semakin besar nilai fps, maka animasi yang dihasilkan akan semakin cepat. Sebaliknya, nilai fps yang kecil akan membuat animasi berjalan lambat.
Untuk mengeset kecepatan animasi secara global, kita dapat dengan mudah mengatur nilai fps. Nilai fps ini berlaku global terhadap jalannya seluruh movie, sekalipun kita menggunakan scene yang berbeda. Hal ini akan menimbulkan masalah apabila kita menghendaki dalam satu movie mempunyai dua atau lebih fps yang berbeda.
Ternyata bisa kita akali dengan menggunakan fungsi setInterval, contohnya kita bisa sisipkan script sebagai berikut:

var intervalId:Number;
var duration:Number = 143;

intervalId = setInterval(this, "nextFrame", duration);

varibel duration di atas dalam satuan ms. Sehingga apabila yang dikehendaki 7 fps, maka untuk durasi dari fungsi setIntervalnya adalah 1 detik dibagi dengan 7 frame menjadi 0,143 detik atau sama dengan 143 milidetik.

Sebagai catatan, ada sebuah exception pada kasus ini, yaitu apabila kita mengembedded sebuah video dalam format flv ataupun yang sudah dijadikan swf, maka pengubahan durasi dengan setInterval tidak akan berpengaruh terhadap video yang diembedded. Selebihnya, kita dapat mengatur speed dari animasi kita sesuai selera.

Selamat mencoba dan berkreasi.

[ add comment ] ( 2904 views )   |  permalink  |   ( 3 / 165 )
Membuat animasi teks grow/shrink dengan Action Script 
Kita dapat menampilkan teks dengan efek grow/shrink dengan memanfaatkan action script. Algoritmanya adalah membaca huruf demi huruf satu persatu dalam sebuah kalimat dan mengulang efeknya.
Pertama2 kita buat object dengan menggunakan satu huruf sebagai templatenya. Disarankan untuk memilih huruf W karena huruf W memiliki space yang lebih lebar dari lainnya.
Berikutnya kita dapat memasukkan gambar juga ke dalam movie dengan perintah berikut:

loadMovie(_root.images[_root.student_ke], _root.img);

lalu kita akan mulai membaca hurufnya satu demi satu, dan huruf itu akan kita jadikan movie clip sendiri2. Kita menggunakan variabel offset untuk mengatur jarak antar huruf.

i++;
offset = 27;
duplicateMovieClip(this.mc, "mc"+i, i);
var lowerCase:String = _root.names[_root.student_ke];
var upperCase:String = lowerCase.toUpperCase();
this["mc"+i].mcInside.text = upperCase.charAt(i);
this["mc"+i]._x = 10+(offset*i);
this["mc"+i]._y = 10;


dan pada frame terakhir, kita masukkan script gotoAndPlay untuk mengulang proses pembacaan huruf sampai selesai. Asumsi: sudah ada movie clip yang mengatur efek grow/shrink nya.

[ add comment ] ( 606 views )   |  permalink  |   ( 3 / 179 )
Load Data dari file XML ke variabel array 
Untuk keperluan presentasi misalnya menampilkan nama siswa per kelas beserta fotonya, kita dapat menggunakan looping pada timeline, dimana datanya tinggal kita ganti melalui file xml. Pada frame 1, kita dapat menuliskan kode berikut:

onLoad = function() {
student_ke = 0;
names = [];
images = [];

_xml = new XML();
_xml.ignoreWhite = true;
_xml.load("student.xml");

_xml.onLoad = function(){
nodes = this.firstChild.childNodes;
len = nodes.length;
for(var n=0;n!=len;n++){
names[n] = nodes[n].firstChild.childNodes.toString();
images[n] = nodes[n].firstChild.nextSibling.childNodes.toString();
}
};

};


variabel names dan images adalah variabel array yang nantinya diisi dengan nama siswa dan gambarnya yang diambil dari file xml. Berikut adalah contoh file xmlnya:

<people>
<student>
<name>Gregorius Glen Kalensang</name>
<image>image01.jpg</image>
</student>
<student>
<name>Andy Leonardo</name>
<image>image02.jpg</image>
</student>
<student>
<name>Evelyn Novilia Gunawan</name>
<image>image03.jpg</image>
</student>
<student>
<name>Felisya Theodorus</name>
<image>image04.jpg</image>
</student>
<student>
<name>Go Frendi Gotanto</name>
<image>image05.jpg</image>
</student>
<student>
<name>Grace Ardelia Prajogo</name>
<image>image06.jpg</image>
</student>
<student>
<name>Jessica Limantauw</name>
<image>image07.jpg</image>
</student>
<student>
<name>Joshua Emmanuel Liemmongan</name>
<image>image08.jpg</image>
</student>
<student>
<name>Lydia Tanuwijaya</name>
<image>image09.jpg</image>
</student>
<student>
<name>Lyvia Prillyana Harli</name>
<image>image10.jpg</image>
</student>
<student>
<name>Perzeus Viego Koentjoro</name>
<image>image11.jpg</image>
</student>
<student>
<name>Priska Wijaya</name>
<image>image12.jpg</image>
</student>
<student>
<name>Puspita Nugraha Wibisono</name>
<image>image13.jpg</image>
</student>
<student>
<name>Shendy Christy Santoso</name>
<image>image14.jpg</image>
</student>
<student>
<name>Sherly Gunawan</name>
<image>image15.jpg</image>
</student>
<student>
<name>Sibyl Rozzela Soetedja</name>
<image>image16.jpg</image>
</student>
<student>
<name>Yessica Marcelina Oentoeng</name>
<image>image17.jpg</image>
</student>
<student>
<name>Yurike Cindy Kusuma</name>
<image>image18.jpg</image>
</student>
</people>


variabel student_ke adalah variabel yang digunakann sebagai indeks array nantinya. Untuk mengontrol loop, kita gunakan button yang apabila diklik, kontrol akan dipindahkan ke frame sebelumnya.

on (release) {
if (_root.student_ke<62) {
_root.student_ke++;
gotoAndPlay("start_1");
}
else
{
gotoAndPlay("end_1");
}
}


[ add comment ] ( 870 views )   |  permalink  |   ( 2.9 / 200 )
Dilema Cache di Flash 
Mungkin sebagian dari kita atau bahkan semuanya sudah pernah membuat aplikasi foto gallery dengan Flash. Dengan menggunakan Flash, kita dapat membuat animasi yang memikat dan sangat variatif tergantung kreativitas kita masing-masing. Membuat foto gallery yang statik cukup gampang.Kita tinggal import semua gambar ke dalam library Flash lalu mulai mainkan animasinya.
Lain halnya dengan membuat foto gallery yang dinamis, yang harus berubah setiap saat. Mungkin kita akan kerepotan apabila harus membongkar file fla dan mengganti gambar di dalam library satu per satu.
Dengan menggunakan file XML, hal ini dapat dihindari. Kita dapat memasukkan list dari file gambar yang kita gunakan ke dalam file XML, lalu Flash akan membaca file XML tersebut dan meload gambarnya. Lalu bagaimana jika gambarnya mau diganti? Apakah kita bisa dengan mudah edit file XMLnya dan upload file gambarnya?
Ternyata tidak. Sebab sekalipun kita sudah mengganti file XML dan mengupload gambar yang baru, foto gallery Flash tetap akan menampilkan foto yang lama. Mengapa demikian?
Hal ini disebabkan karena ternyata Flash memiliki cache yang mungkin dimaksudkan untuk mengurangi waktu loading apabila foto gallery sudah pernah dibuka oleh user. Cache Flash ini akan sangat mengganggu jika kita bermaksud mengupdate foto gallery sesering mungkin, karena gambar yang ditampilkan diambil dari cache dan bukannya dari file XML atau gambar yang baru.
Pertanyaannya adalah: Dapatkah cache ini didisable?
Ternyata bisa... Tapi sebelumnya kita harus mendownload Extension Cache Manager, suatu plugin untuk Macromedia Flash yang berfungsi untuk mengenable atau disable Cache nya Flash.
Untuk menggunakan fasilitas ini, kita sisipkan perintah berikut dalam action script kita:

import com.communitymx.CacheManager;

kemudian untuk mendisable Cache nya digunakan perintah berikut:

var xmlURL:String=CacheManager.uncacheURL("list.xml");
myXML.load(xmlURL);


perlu diingat bahwa dalam keadaan default, Flash mengenable Cache nya.

Selanjutnya jangan lupa bahwa kita juga harus mendisable cache terhadap gambar, karena ternyata Flash membuat cache pada semua object, termasuk file data dan gambar. Jadi sebelum gambar diload, kita disable cachenya.

Jadi kita akan menjumpai foto gallery kita dapat langsung berubah setiap kali kita upload gambar yang baru. Namun kita akan menjumpai suatu masalah baru. Jika kita mendisable cache, artinya setiap user membuka halaman yang sama, flash akan mendownload gambar yang sama berulang kali sehingga akan menghabiskan bandwidth. Hal ini menjadi tidak seefektif apabila Flash mengcache gambar yang diload sehingga tidak akan menjadi beban tersendiri dalam meload halaman web.

Ini adalah dilema yang kita hadapi.

Jika kita mendisable cache, di satu sisi, kita dapat langsung mengupdate foto gallery namun di sisi lain, website kita akan terbebani dengan penggunaan bandwidth yang sebenarnya tidak perlu.


[ add comment ] ( 768 views )   |  permalink  |   ( 3.1 / 250 )

| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Next> Last>>