# زبان های اسکریپتی > Flash و  ActionScript > آموزش: آموزش اکشن اسکریت 3

## magnetbox.ir

سلام :

در این تاپیک آموزش اکشن اسکریت 3 رو به صورت گام به گام قرار می دم

لطفا سئوالات در این تاپیک پرسیده نشود

www.magnetbox.ir

----------


## magnetbox.ir

آموزش اول :

آشنایی با سه سیمبل فلش :

شما در فلش با سه سیمبل از نوع :

1- movieClip: یک سیمبل کانتینر هست که اکشن قبول می کنه .

2- Button: یک سیمبل دکمه هست که اکشن قبول می کنه و به 4 قسمت تقسیم میشه

3-graphic: یک سیمبل گرافیکی ساده هست که اکشن قبول نمی کنه و به ماسک تایم لاین هم معروفه

کار می کنید .

----------


## magnetbox.ir

شما هنگامی که زبان اکشن اسکریپت 3 رو انتخاب می کنید کجاها می تونید کد بنویسید ؟

1-timeline

2-روی تایم لاین داخل MovieClip 

3- داخل کلاس

----------


## magnetbox.ir

نحوه نوشتن ایونت ها در اکشن اسکریپت 3 :


objName.addEventListener(typeEvent,Function listener);


این ساده ترین شکل تعریف یک ایونت برای یک آبجکت هست .

خوب حالا یک کد ساده کلیک برای کلیک کردن روی دکمه .

buttonName.addEventListener(MouseEvent.CLICK,CK)

function CK(e:mouseEvent)
{
trace("click")
}

ادامه دارد .

----------


## magnetbox.ir

ساختار کلاس به صورت کلی :

package namseSpace
{
public class ClassName extends parentClass
{

public function className()
{
constructor//
}

}
}

----------


## magnetbox.ir

انواع دسترسی کلاس :

1-public: این نوع یک کلاس ثابت هست همه کلاس های دیگه بهش دسترسی دارن و می تونن ازش ارث ببرن

2- protected

3-internal: کلاس هایی که nameSpace هم نام با این کلاس دارن بهش دسترسی دارن

4-dynamic: این نوع کلاس خیلی جالبه . شما می تونید هر چیزی رو هر موقع که خواستید با هر نام و هر نوعی

داخلش قرار بدید و بعداَ ازش استفاده کنید و یا حذف کنید

:::::تکمیل می شود :::::

----------


## magnetbox.ir

سلام :

سعی می کنم اگه کسی سئوالی داشت اینجا آموزش هاشو بذارم که یکم کاربردی تر جلو بریم 

اما سئوالات رو اینجا نپرسید

آموزش لود کردن xml در اکشن اسکریپت 3 :

1- شما احتیاج به یک متغیر از نوع xml دارید که بعد از لود شدن محتوی xml فایل تون رو داخل اون بذارید

پس کد می شه:

var xml:XML = new XML();


2- شما احتیاج به یک لودر از نوع urlLoader دارید تا بتونه فایل تو نو لود کنه

پس کد میشه :

var uL:URLLoader 

3- شما برای لود باید مسیر فایل تونو بگید و در اکشن 3 این کار رو با یک شی از نوع URLRequest می تو نید

انجام بدید 

پس کد می شه :

var UR:URLRequest = new URLRequest(path)

uL=new URLLoader()

Ul.load(UR)

حالا احتیاج دارید بدونید که کی لود تموم شده و محتوی رو داخل شی xml بریزید

پس کد میشه :

uL.addEventListener(Event.COMPLETE,CF)
function CF(e:event)
{
xml =new XMl(e.target.data)
trace(xml)

}



حالا کلا کد اینجوری میشه


import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;

var xml:XML=new XML();
var Ul:URLLoader;
var UR:URLRequest = new URLRequest(path);
Ul=new URLLoader();
Ul..addEventListener(Event.COMPLETE,CF);
Ul.load(UR)
function CF(e:Event)
{
    
    xml = new XML(e.target.data)
    trace(xml)
}

----------


## magnetbox.ir

سلام یکی دیگه از سئوالات دوستان در مورد معادل های onClipEvent اکشن اسکریپت 2 در اکشن اسکریپت 3

هست .

onClipEvent(load) : معادلش میشه 


this.addEventListener(Event.ADDED_TO_STAGE, onAdded, false, 0, true);
          public function onAdded( event:Event ):void
 
{ 
removeEventListener(Event.ADDED_TO_STAGE, onAdded, false );
                  trace(this.name); 
}


معادل onClipEvent(unload) :


this.addEventListener(Event.REMOVED_FROM_STAGE, onRemove, false, 0, true);
          public function onRemove( event:Event ):void {

     removeEventListener(Event.REMOVE_FROM_STAGE, onAdded, false );                  
trace(this.name);
 }


 معادلonClipEvent(enterFrame): 

this.addEventListener(Event.ENTER_FRAME, loading);
function loading(e:Event):void{
}

معادل بقیه ایونت ها در MouseEvent پیدا می کنید

----------


## magnetbox.ir

طریقه ساخت MovieClip و اضافه کردن سیمبل های دیگر به آن :


import flash.display.MovieClip;

var sy4_mc:MovieClip = new sy2_mc()
sy4_mc.x=100;
sy4_mc.y=200;
sy4_mc.name="sy4_mc";
this.addChild(sy4_mc)

help.zip

----------


## magnetbox.ir

حذف سیمبل ها از داخل یک MovieClip:


import flash.display.MovieClip;
import flash.events.MouseEvent;

var sy4_mc:MovieClip = new sy2_mc()
sy4_mc.x=100;
sy4_mc.y=200;
sy4_mc.name="sy4_mc"
this.addChild(sy4_mc)
trace(this.numChildren)
this.addEventListener(MouseEvent.CLICK,MC)
function MC(e:MouseEvent)
{
    this.removeChild(this.getChildByName("sy4_mc"))
    sy4_mc = null
    trace(this.numChildren)
}

removehelp.zip

----------


## magnetbox.ir

آموزش مفاهیم کلاس در as3:

شما هر چیزی که در فلش دارید در اصل یک کلاس هست .

یعنی کلاس صدا ، کلاس تصویر ، کلاس های کانتینر ، کلاس های آبجت و غیره

پس هر چیزی که در داخل کتابخانه خودتون دارید و قسمت linkage رو براش فعال کنید اون فایل شما یک کلاس

جدید هست که از جنس اصلی خودش در کلاس های اصلی ارث می برد پس شما در کد هاتون همین که نام

اونو با کلمه کلید new har smy ke dadid() بزنید که شی از اون ساخته اید و میتونید در کانتینر ها child کنید

----------


## barnamenevisjavan

میشه یه توضیح بدید که با اکشن اسکریپت چه برنامه ای مثلا میتونیم بنویسیم؟IDE خاصی داره؟

----------


## magnetbox.ir

برای کپی کردن متن در Clipboard از کد زیر استفاده کنید .


import flash.system.System;

System.setClipboard("matn")


حالا اگر متن یک تکست باکس رو می خواهید در Clipboard ببرید . این جوی بنویسید


import flash.system.System;

System.setClipboard(textBox.text)


نکته : یادتون نره فونت رو embed کنید

----------


## magnetbox.ir

آموزش اجرای فایل exe در فلش

دو راه برای این وضوع و جود دارد .

1- اجرای فایل exe به صورت مستقیم
2- اجرای فایل bat که حاوی کدی است که فایل exe را اجرا می کند

کد به صورت :

fscommand("exec",name file);

نکات مهم :
1-شما برای اجرای فایل exe باید حتما اون رو داخل یک پوشه به نام fscommand قرار بدید
2- فقط خروجی exe شما این کار رو می تونه بکنه نه swf
3- در هنگام مسیر دادن نام پوشه fscommand  نباید نوشته شود
4- در ادوبی ایر fscommand کار نمی کند

----------


## magnetbox.ir

آموزش لود فایل swf:

1- شما یک لودر تعریف می کنید .

2- یک مسیر مشخص می کنید .

3- یک اونت برای لودر تعریف می کنید که هر موقع لود تموم شد بفهمید .

4- فایل لود شده را به کار اضافه می کنید .

5- لودر رو خالی می کنید و پاک می کنید .

که می شه این :


import flash.display.MovieClip;
import flash.net.URLRequest;
import flash.events.Event;
import flash.display.Loader;

var mc :MovieClip;
var ld:Loader = new Loader();

var url:URLRequest=new URLRequest("path");
ld.contentLoaderInfo.addEventListener(Event.COMPLE  TE,CM)
ld.load(url);
function CM(e:Event)
{
ld.contentLoaderInfo.removeEventListener(Event.COM  PLETE,CM)
mc = ld.content as MovieClip;
this.addChild(mc);
ld.contentLoaderInfo.addEventListener(Event.UNLOAD  ,UN);
ld.unloadAndStop(true);
}
function UN(e:Event)
{
    ld.contentLoaderInfo.removeEventListener(Event.UNL  OAD,UN);
    ld = null;
}

----------


## magnetbox.ir

آموزش removeChild

بعد از لود کردن و اضافه شدن اون فایل به کارتون (که کد اون بالای این پست هست) حالا تصمیم دارید که

اونو از صفحه پاک کنید . 

که می شه این :


this.removeChild(mc);
mc = null;

----------

