Monthly ArchiveAugust 2005



Uncategorized 31 Aug 2005 04:20 pm

[OTT] Opera Gratis

Bagi penggemar browser Opera tentu ini merupakan kabar bagus. Menyambut ultah yang ke-10 tahun Opera memberikan kode registrasi secara gratis.
Jadi tunggu apa lagi mumpung gratiss…

http://my.opera.com/community/party/reg.dml

Flash Platform 31 Aug 2005 04:00 pm

All things about Flash Player 8 by Tinic Uro

[ via Tinic Uro ]
We all know that Tinic Uro was the man behind Flash Player. He is a Principal Engineer on the Macromedia Flash Player. Glad that he wrote a ton of articles relevan to Flash Player 8 so why not go to his blog.

Action Script & Flash Media Server 31 Aug 2005 01:12 pm

[FlashComm] Audio Component with Mic Permission

This post based on thread at flashcomguru.com forum.
The idea is how to set audio component to make mic disable while the other side still talk (mic in used).
I remark the audio component from communication component to make a simple sample. Also for simple room sample I’m using from simple application that include on FlashComm Package. Anyway about the component I recomended you to build your own component to make it better. The code you can read on my post on flashcomguru.com forum.
Here the zip file.

You can modified the code and make your own code. For example if you want there is an admin will control who’s mic will available.

Uncategorized 31 Aug 2005 10:48 am

Google Talk an Identity Strategy, XMPP, CFMX and MXNA

1rst I wanna say thanks for the ISP thant make me available online again even still extremely slow. 2nd thanks for Herdiansah about his information about Google Talk (GTalk) in his blog page.
GTalk is Google.com startegy to step forward by playing identity strategy like Phill Windley said on his blog.
It similiar like Jabber, GTalk system is based on XMPP, the XML-based protocol gateway. So if you an IM client developer, you can build your own GTalk client. More info about developer you can read at GTalk Developer Info.
People at Cryptical Envelopment has build some interesting stuff about great combination of GTalk with CFMX gateway or Macromedia XML News Aggregator ( MXNA ) and GTalk.

Action Script & Tutorials 22 Aug 2005 01:30 pm

Number To Text : Speech API (SAPI) in Flash?

Script ini saya tulis setelah seorang teman bertanya kepada saya tentang bagaimana cara membuat agar sebuah input berupa angka dapat dirubah menjadi teks. Dan kemungkinan membuat sebuah Speech API (SAPI) dalam Flash.
Konsep idenya adalah dengan memanfaatkan Array class dan String class. Jadi outputnya berupa array. Jadi jika kemudian hendak dimunculkan dalam teks tinggal menampilkan output dari array tadi.
Khusus untuk sound karena diperlukan time interval untuk selesainya pengucapkan satu kata maka disini saya gunakan SetInterval(). Namun bisa juga sebenarnya menggunakan Sound class misalnya Sound.OnSoundComplete untuk menentukan bahwa 1 kata telah diucapkan.

Actionscript:
  1. // list Array library
  2. var satuan = [
  3. "nol", "satu", "dua", "tiga", "empat",
  4. "lima","enam","tujuh","delapan","sembilan"
  5. ];
  6. var belasan = [
  7. "sepuluh", "se", "dua", "tiga", "empat",
  8. "lima", "enam", "tujuh", "delapan", "sembilan"
  9. ];
  10. var kelompok = [
  11. "se", "belas", "puluh", "ratus", "ribu", "juta", "miliar", "triliun"
  12. ];
  13. var startN   = 0;
  14. var voiceList  = new Array();
  15.  
  16. test_format = function(n){
  17.  
  18. // set menjadi string
  19. var input =  n.toString();
  20.  
  21. if(input == ""){
  22. showAlert("WARNING","Anda belum memasukan data!");
  23. return;
  24. // check harus format angka
  25. } else if(isNaN(input)) {
  26. showAlert("WARNING",input + " bukan dalam format angka!");
  27. return;
  28. // lebih dari ratusan triliun ---> limit
  29. } else if(input.length> 19){
  30. showAlert("MAAF...","Input maksimum dalam triliunan");
  31. return;
  32. }
  33.  
  34. // check jika harus di eja per angka
  35. if(dieja_check.selected){
  36. var voiceArray = eja_angka(input);
  37. } else {
  38. // set input ke format number
  39. input_angka.text = Number(input);
  40. var voiceArray = check_angka(input);
  41. }
  42.  
  43. return voiceArray;
  44.  
  45. }
  46. check_angka = function(input){
  47.  
  48. var voiceArray = new Array();
  49. var angka = input.substr(0,1);
  50.  
  51. // triliunan
  52. if(input.length> 12){
  53. var triliun = input.substr(0,input.length-12);
  54. triliun = check_angka_ribuan(triliun);
  55. voiceArray = voiceArray.concat(triliun);
  56. if(triliun.length> 0){
  57. voiceArray.push(kelompok[7]);//"triliun");
  58. }
  59. var miliar = input.substr(input.length-12,input.length);
  60. miliar = check_angka(miliar);
  61. voiceArray = voiceArray.concat(miliar);
  62.  
  63. // milliaran
  64. } else if(input.length> 9){
  65. var miliar = input.substr(0,input.length-9);
  66. miliar = check_angka_ribuan(miliar);
  67. voiceArray = voiceArray.concat(miliar);
  68. if(miliar.length> 0){
  69. voiceArray.push(kelompok[6]);//"miliar");
  70. }
  71. var jutaan = input.substr(input.length-9,input.length);
  72. jutaan = check_angka(jutaan);
  73. voiceArray = voiceArray.concat(jutaan);
  74.  
  75. // jutaan
  76. } else if(input.length> 6){
  77. var jutaan = input.substr(0,input.length-6);
  78. jutaan = check_angka_ribuan(jutaan);
  79. voiceArray = voiceArray.concat(jutaan);
  80. if(jutaan.length> 0){
  81. voiceArray.push(kelompok[5]);//"juta");
  82. }
  83. var ribuan = input.substr(input.length-6,input.length);
  84. ribuan = check_angka(ribuan);
  85. voiceArray = voiceArray.concat(ribuan);
  86.  
  87. // ribuan
  88. } else if(input.length> 3){
  89.  
  90. if(input.length == 4){
  91. var ribuan = check_angka_ribuan(input);
  92. voiceArray = voiceArray.concat(ribuan);
  93. } else {
  94. var ribuan = input.substr(0,input.length-3);
  95.  
  96. if(Number(ribuan) == 1) {
  97. voiceArray.push(kelompok[0]);//"se");
  98. } else {
  99. ribuan = check_angka_ribuan(ribuan);
  100. voiceArray = voiceArray.concat(ribuan);
  101. }
  102. if(ribuan.length> 0){
  103. voiceArray.push(kelompok[4]);//"ribu");
  104. }
  105. var ratusan = input.substr(input.length-3,input.length);
  106. ratusan = check_angka_ribuan(ratusan);
  107. voiceArray = voiceArray.concat(ratusan);
  108. }
  109.  
  110. } else {
  111. var ribuan = check_angka_ribuan(input);
  112. voiceArray = voiceArray.concat(ribuan);
  113. }
  114.  
  115. return voiceArray;
  116.  
  117. }
  118.  
  119. check_angka_ribuan = function(n){
  120.  
  121. // created array sususan voice
  122. var voiceArray = new Array();
  123. //lakukan looping
  124. var angkaCount = ""; // ---> string
  125. var nextLength = n.length;
  126.  
  127. for(var a=0 ; a
  128. var angka = n.substr(a,1);
  129. // di belasan
  130. if((nextLength-a)> 2 and angka != 0){
  131. if(angka != 1 or (nextLength-a) == 1){
  132. voiceArray.push(satuan[angka]);
  133. angkaCount = n.substr(a,n.length);
  134. } else {
  135. voiceArray.push(kelompok[0]);//"se");
  136. voiceArray.push(kelompok[nextLength-a]);
  137. }
  138. // belasan
  139. } else if((nextLength-a)> 1){
  140. if(angka> 1){
  141. voiceArray.push(satuan[angka]);
  142. angkaCount = n.substr(a,n.length);
  143. } else if(angka == 1){
  144. var angka = n.substr(a+1,1);
  145. voiceArray.push(belasan[angka]);
  146. if(angka != 0){ voiceArray.push(kelompok[1])};//"belas"); }
  147. break;
  148. } else {
  149. if(angka != 0) {
  150. var angka = n.substr(a+1,1);
  151. voiceArray.push(satuan[angka]);
  152. }
  153. }
  154. } else {
  155. if(angka != 0){ voiceArray.push(satuan[angka]); }
  156. break;
  157. }
  158. // set satuan
  159. if(angkaCount.length> 1){
  160. if(angka != 1){
  161. if(angka != 0)
  162. voiceArray.push(kelompok[angkaCount.length]);
  163. } else {
  164. voiceArray.push(belasan[n.substr(a,1)]);
  165. if(angka != 0){ voiceArray.push(kelompok[1])};//"belas"); }
  166. break;
  167. }
  168. }
  169. }
  170.  
  171. return voiceArray;
  172.  
  173. }
  174.  
  175. // mengeja angka
  176. eja_angka = function(n){
  177. var voiceArray = new Array();
  178. for(var i=0 ; i
  179. voiceArray.push(satuan[n.substr(i,1)]);
  180. }
  181. return voiceArray;
  182. }
  183.  
  184. writeToText = function(){
  185. if(voiceList == undefined) return;
  186. var out = "";
  187. for(var i=0 ; i
  188. out += voiceList[i]+" ";
  189. }
  190. output_text.text = out;
  191. }
  192.  
  193. loadNplaySound = function(){
  194.  
  195. if(voiceList == undefined) return;
  196.  
  197. clearInterval(myDelay);
  198.  
  199. suara = new Sound();
  200. suara.loadSound(voiceList[startN]+".mp3", true);
  201. suara.start();
  202.  
  203. output_text.text += voiceList[startN];
  204.  
  205. startN++;
  206. if(startN <voiceList.length){
  207. // loop with interval
  208. myDelay = setInterval(loadNplaySound,2000);
  209. } else {
  210. startN = 0;
  211. voiceList = new Array();
  212. }
  213. }

Untuk dapat mengerti script di atas anda harus paham Array dan String dalam flash.
Karena sifatnya berupa test labs aja jadi masih ada batasan-2 dari coding saya ini. Sementara masih terbatas sampai ratusan triliun. Codingnya juga masih kotor jadi masih bisa dibuat lebih simple dan manis. Jadi jika ada yang mau komen silahkan.

Uncategorized 19 Aug 2005 10:44 am

VCS, An Alternative Way For Streaming Video?

[ via Flashcomguru ]
I got this information from Stefan Richter of flashcomguru.com. This is interesting. Espesially if you work on unix based system, because this Video Communication Serve (VCS) work on Unix system. The most interesting part it about the price. If Flashcomm limited by users and bandwith, not on VCS. They only limited by users. Interesting huh?.
But I'm still waiting about the legal thing. Esspecially if they are using RTMP protocol the same as Flashcomm did. People in Flashcomm milis at chattyfig.figleaf.com already discuss about this thing but still not yet clear may be we need more information about this. The problem is not enough document about VCS or because they not have document in english?

Uncategorized 18 Aug 2005 02:54 pm

Source Files gotoAndLearn.com

[ via theFlashBlog ]
Sudah banyak yang tahu kalau site gotoAndLearn.com merupakan pemenang dari Flash Film Festival 2005 NYC utk kategori Educational. Site karya Lee Brimelow ini memuat tutorial berbentuk Flash Video (FLV) serta disertakan pula source files nya dalam format zip.

PHP + MySQL 18 Aug 2005 02:47 pm

PHP, MySQL, & Flash Video Tutorial

[ via theFlashBlog ]
Dalam banyak kesempatan di beberapa forum dan milis saya sering menerima banyak pertanyaan tentang cara mengintegerasikan dabase dengan flash.
Video tutorial dari Lee Brimelow dan dipubliskasikan dalam site gotoAndLearn.com tentang PHP, MySQL, & Flash seharusnya menjadi salah satu alternatif bagi mereka yang ingin belajar mengintegerasikan MySQL, PHP & Flash. Tersedia pula source files dalam zip file.

Uncategorized 16 Aug 2005 02:48 pm

Xamlon™ Web Lets .NET Developers Write Flash Application

[ via FlashCodersNY.org ]
Jim Phelan wrote and article about an alternative solution for writing Flash application for .NET developer.
Xamlon™ Web enables you to work in Visual Studio and deploy to the Macromedia® Flash® platform without having to learn Flash® or ActionScript®.

Uncategorized 16 Aug 2005 02:17 pm

[FlashComm] Bandwith Management using Web Cam Motion Detection

We all known that most of FlashComm developver always fight with bandwith limitation. Lisa Larson also talk FlashComm Hit List on FlashCodersNY.org.
I agree that using Audio and Video is really cool in FlashComm. But if you has limitation on bandwith then you will has problem.
You can optimize your audio / mic and video / web cam using Peldi tools. But if that's still not enough then you can try to used motion detection of web cam to avoid sending video if nothing need to be sent (let's say the camere is idle). We can used Camera.onActivity, Camera.activityLevel, Camera.motionLevel, Camera.setMotionLevel() to detect motion on our web cam.

Method:

Camera.setMotionLevel(sensitivity_motion_detection, time_interval);

Sample code:

// net connection
nc = new NetConnection();
nc.connect("rtmp:/testCam");

// camera
my_cam = Camera.get();
my_cam.onActivity = function(activity) {
      trace("motion detection : "+activity);
      if(!activity){
            my_video.attachVideo( null );
            ns.attachVideo( null ); // stop publishing
      } else {
            my_video.attachVideo( my_cam );
            ns.attachVideo( my_cam ); // re publishing
      }
}
my_cam.setMotionLevel(10, 1000);
my_video.attachVideo(my_cam);

// net Stream
ns = new NetStream( nc );
ns.attachVideo( my_cam );
ns.publish("streams_", "live");

More details about using web cam motion detection you can find on LiveDocs.

Next Page »