آموزش Drawing Api In Swishmax

naeim_crack

Active Member
بسم الله الرحمن الرحيم
سلام . دو يا سه هفته پيش من به مسيح جون قول دادم اين آموزش رو بنويسم و اينجا بزارم
البته فريد خان يك بار براي فلش اين آموزش رو داخل سايتشون قرار دادن حالا منم واسه سويش ميگم :lol:
Drawing Api In Swishmax
يكي از ويژگي هاي كه به تازگي به سويش اضافه شده كشدن اشكال با استفاده از اكشن اسكريپت است كه اگه كسي كاملا به اون تسلط پيدا كنه خيلي كارا رو مي تونه با اون انجام بده
حالا اولين قدم معرفي دستورات اين كاره
1- اولين دستور createEmptyMovieClip
اين دستور از اسمش معلومه كه چه كاري انجام ميده اين دستور براي ساختن يك movieclip خالي استفاده ميشه
2- lineStyle
با استفاده از اين دستور ضخامت و رنگ و الفاي تماي خطوطي را كه رسم ميكنيم تنظيم مشخص مي شود
3-lineTo
با استفاده از اين دستور مي توانيم خط رسم كنيم
4- curveTo
با استفاده از اين دستور مي توانيم خطوطي كه داراي انحنا(منحني) هستند رو رسم كنيم
5-beginFill , endFill
با استفاده از اين دستور مي توانيم داخل اشكالي رو كه طراحي كرديم رو رنگ كنيم البته فقط به صورت solid
6-moveTo
اين دستور براي دادن مختصات به شكل است

اين تمامي دستوراتي بود كه در اينجا استفاده ميشه حالا عملكرد هر كدوم رو به صورت جداگانه مي گم


1) createEmptyMovieClip :
کد:
createEmptyMovieClip("movie"نام , depth) ;
مقدار depth یک مقدار عددی هست که همون شماره level یا همون لایه ای هست که شما ایجاد میکنین.


2) moveTo :

فرض میکنیم نام movie رو draw انتخاب کردیم ؛

کد:
moveTo(x ,y);
مقادیر x و y مختصاتی هست که میخوایم movie clip رو به اون مختصات انتقال بدیم.

3) lineStyle :
کد:
lineStyle(thickness , RGB , alpha);
thickness همونطوری که از اسمش مشخصه مقدار ضخامت خط هست. RGB رنگ اون هست که به صورت 0xRRGGBB نوشته میشه که RR معرف قرمز GG معرف سبز و BB معرف آبی هست مثلا برای رنگ صورتی این مقادیر : 0xff0095 به کار میره. alpha هم که مشخصه دیگه برای چیه!

4) lineTo:
کد:
lineTo(x,y);
x و y مختصاتی هست که از x و y کلیپ draw خط به این مختصات کشیده میشه.

5) curveTo:
کد:
curveTo(x, y, anchorX, anchorY);
x و y که مشخصن . anchorX و anchorY مقادیر خمیدگی خطها رو روی مختصات x و y مشخص میکنن.

6) beginFill و: endFill
کد:
beginFill(RGB, alpha);

 . . . 

endFill();
RGB و alpha که قبلاً توضیح داده شدن. به جای اون سه نقطه بالا Action هایی رو قرار میدیم که خطها و منحنی ها رو رسم می کنن و این دستور در بین فضاهای پر ایجاد شده رنگ رو ایجاد میکنه.

حالا جند تا مثال :

1- براي كشيدن مريع :
کد:
  moveTo (200, 200);
    
    beginFill (0x6B9CD1, 100);

    lineStyle (5, 0xD7D2D2, 100);

    lineTo (200, 300);

    lineTo (100, 300);

    lineTo (100, 200);

    lineTo (200, 200);

    endFill();
2- براي كشيدن مثلث
کد:
 moveTo (200, 200);

    beginFill (0xF97824, 100);

    lineStyle (5, 0xD7D2D2, 100);

    lineTo (200, 300);

    lineTo (200, 300);

    lineTo (100, 200);

    lineTo (200, 200);

    endFill();
3- براي كشيدن دايره
کد:
moveTo(200, 200);

  lineStyle( 3, 0xD7D2D2, 100);

  beginFill(0xF97824 , 100);

  curveTo(300, 200, 300, 100);

  curveTo(300, 0, 200, 0);

  curveTo(100, 0, 100, 100);

  curveTo(100, 200, 200, 200);

  endFill();

اينم يك مثال كه با دستورات بالا و سويش درست شده




[flash width=200 height=200:d288734430]http://www.sepidphosphat.com/dcp.swf[/flash:d288734430]

اميدوار اين آموزش بدردتون خورده باشه
 

Masih

Well-Known Member
واقعا عالي بود. خسته نباشي. من اين رو بصورت «مهم» درميارم تا همه ببينن. بعدش اگر هم بتوني براي سايت بفرستي كه در بخش مقالات قرار بگيره خيلي خوبه.

مسيح.
 

mosi20

Active Member
حالا ميشه يه توضيح بدي كه چطوري يه حركت به اين چيزي كه كشيديم بديميا يه افكت بهش بديم؟
 

mosi20

Active Member
آقا اين فايل ها ي شما را من نمي تونم دانلود كنم
اگه ميشه زيپش كن بلكه بشه دانلودش كرد
شرمندتم آقا نعيم
من خودم مثالشو دارم اما نمي فهمم چطوريه
اگه ميشه مثل if توضيح بده لطفا
کد:
function crearLinea(){
_root.createEmptyMovieClip("clip",1);
_root["clip"].lineStyle( 10, 0x336699,100 );
_root["clip"].moveTo(100,200);
_root["clip"].curveTo(_root.arriba+3,_root.abajo,500,200);

}
onFrame (1,afterPlacedObjectEvents){
   stop();  
   _root.velX=0;
   _root.velY=0;
   _root.aceleracion = 1;
   _root.deceleracion = 1.6;

   _root.arriba = 0;
   _root.abajo = 0;    
crearlinea()
}
onEnterFrame(includingFirstFrame){
    

    
    if(_root.presionado == true){
        _root.abajo=(this._ymouse-200)*4/2;
        _root.abajo+=200;
        _root.arriba=(this._xmouse-125)*4/2;
        _root.arriba+=20;
        crearlinea();    
    }
    else
    {
    _root.velX = (_root.velX+(200-_root.arriba)/_root.aceleracion)/_root.deceleracion;
    _root.velY = (_root.velY+(200-_root.abajo)/_root.aceleracion)/_root.deceleracion;	
    _root.arriba+= velX;
    _root.abajo+= velY;
    crearlinea();
}
}
onSelfEvent (press) {
 presionado = true;
}
onSelfEvent (release) {
presionado = false;
}
 

f_mostafa_f

Active Member
آقا ممنون .

من هنوز روش كار نكردم.

ولي امتحان ميكنم اگه مشكلي بود مزاحم ميشم...
 

nik_sali

Member
سلام

آقا نعيم خسته نباشي دستت درد نكنه

اگه ميشه اين لينكهايي كه گذاشتي چك كن كار نميكنه اگه براتون زحمتي نيست زيپشون كنيد

ممنون
 

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

بالا