آموزش ساخت ویژوالیزاسیون! (Visualization)

shirini_forush

Well-Known Member
این نمونه رو با Flash CS3 و اکشن اسکریپت 3 نوشتم.
نمونه ی خیلی خوبی شده.
اگر تو سرعت AS گیر نکنیم و ریاضیتون هم در حد oOps باشه میشه Visualization های Windows Media Player رو هم ساخت...

آموزش این رو حتما میزارم.

برای استفاده ی نمونه فقط کافیه اون رو با WinRAR باز کنید و یه جا کپی کنید. بعد درست کنارش یه فایل mp3 به نام Nimkat (!) بذارید تا پخش و Visualate کنه.
 

پیوست ها

  • Safir187.rar
    2.1 کیلوبایت · بازدیدها: 76

shirini_forush

Well-Known Member
عزیز جون exe کردم 1 مگ شد.
فکر اینترنت ذغالی ما رو هم بکنید:cry:

فلش پلیرم که مفته... دانلود بفرمایید.

برای آموزش هم همینجا سر بزنید...
 

shirini_forush

Well-Known Member
ببخشید که این همه طول کشید...
آخه فصل امتحاناته دیگه...
فعلا آموزشش رو شروع میکنم تا ببینیم کی تموم میشه.

اول یه فایل فلش میسازیم!
دقت کنید که فایل AS3 باشه.
بعد 32 تا نوار مشابه با نام های i0,i1,...,i31 میسازید و ردیفشون میکنید...

حالا یه آبجکت صدا میسازید. اینجوری:

PHP:
var so:Sound = new Sound();

بعد یه متغیر step میسازیم که بعدا توضیح میدم به چه کاری میاد (البته این اختیاریه)

PHP:
var step:Number = 0.05;

حالا یه sound channel تعریف میکنیم.
این از کلاس های جدید as3 هست که میتونه صدا هایی که تو فلش استریم میشن رو بدست بگیره.
هر صدایی که تو فلش پلیر پخش میشه دست یه ساند چنله.
میتونید هر ساند چنل رو جدا گانه stop کنید یا به left و right ش دسترسی داشته باشید و...

PHP:
var sc:SoundChannel;

حالا یه byte array تعریف میکنیم. اینم یکی از کلاس های توپ و حرفه ای توی as3 هست که برای دسترسی به byte level کولاکه. و...

PHP:
var ba:ByteArray = new ByteArray();

یه Array هم تعریف میکنیم که مقدار نهایی رو برای هم فرکانس توش داشته باشیم.

PHP:
var i:Array = new Array(32);

حالا صدای مورد نظر رو لود میکنیم. دقت کنید توی as3 دیگه همینجوری کشکی یه string نمیسازیم توش url رو بگیم.
البته این کارم یه جورایی میشه کرد. ولی درستش اینه که با url request این کار رو بکنیم:

PHP:
so.load(new URLRequest("Nimkat.mp3"));

حالا به ساند چنلمون میگیم که این so رو بگیره و پخش کنه:

PHP:
sc = so.play(0,-1);

و به فلش میگیم که ایونت enterframe رو به تابع render اختصاص بده. باز هم یه دقت بفرمایید.
event ها یکم manage شدن.
دیگه نمیگیم:

PHP:
addEventListener("click",...);

میایم از یه constant توی object ه event استفاده میکنیم... اینجوری:

PHP:
this.addEventListener(Event.ENTER_FRAME, render);

راستی یه متغیر هم فعلا به نام a درست کنید تا بعد...

PHP:
var a:Number = 0;

تا اینجا کدمون اینجوری شد:

PHP:
var so:Sound = new Sound();
var step:Number = 0.05;
var sc:SoundChannel;
var ba:ByteArray = new ByteArray();
var i:Array = new Array(32);
so.load(new URLRequest("Nimkat.mp3"));
sc = so.play(0,-1);
this.addEventListener(Event.ENTER_FRAME, render);

var a:Number = 0;
 

shirini_forush

Well-Known Member
والا من یکم دستگاهم فضائیه (بر خلاف اینترنتم)... توش خیلی از این مشکلات ندارم.
اگر همچین مشکلی هست میتونم یکم کار رو سبکتر کنم.
البته کلا سرعت اکشن اسکریپت پایین هستا... مثلا این کاری که من کردم یکی از ساده ترین ویژوالاسیون های ممکنه.
شما تصور کنید بخوام یکی از ویژوالاسیون های آلچمی (Alchemy) رو تو as پیاده کنم...
 

AMiR

Active Member
يه كاري كن حداقل
سرعت پايين اومدن bar‌ها رو بيشتر كن
 

جدیدترین ارسال ها

بالا