PDA

View Full Version : آموزش: آموزش اکشن اسکریت 3



magnetbox.ir
یک شنبه 03 دی 1391, 13:26 عصر
سلام :

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


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

www.magnetbox.ir (http://barnamenevis.org/www.magnetbox.ir)

magnetbox.ir
یک شنبه 03 دی 1391, 13:57 عصر
آموزش اول :

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

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

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

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

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

کار می کنید .

magnetbox.ir
یک شنبه 03 دی 1391, 13:59 عصر
شما هنگامی که زبان اکشن اسکریپت 3 رو انتخاب می کنید کجاها می تونید کد بنویسید ؟

1-timeline

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

3- داخل کلاس

magnetbox.ir
یک شنبه 03 دی 1391, 14:03 عصر
نحوه نوشتن ایونت ها در اکشن اسکریپت 3 :


objName.addEventListener(typeEvent,Function listener);


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

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

buttonName.addEventListener(MouseEvent.CLICK,CK)

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

ادامه دارد .

magnetbox.ir
دوشنبه 04 دی 1391, 13:39 عصر
ساختار کلاس به صورت کلی :

package namseSpace
{
public class ClassName extends parentClass
{

public function className()
{
constructor//
}

}
}

magnetbox.ir
دوشنبه 04 دی 1391, 13:44 عصر
انواع دسترسی کلاس :

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

2- protected

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

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

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

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

magnetbox.ir
دوشنبه 04 دی 1391, 18:52 عصر
سلام :

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


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


آموزش لود کردن 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
جمعه 08 دی 1391, 12:11 عصر
سلام یکی دیگه از سئوالات دوستان در مورد معادل های 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
دوشنبه 11 دی 1391, 09:19 صبح
طریقه ساخت 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)

97579

magnetbox.ir
دوشنبه 11 دی 1391, 09:24 صبح
حذف سیمبل ها از داخل یک 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)
}

97580

magnetbox.ir
سه شنبه 12 دی 1391, 10:20 صبح
آموزش مفاهیم کلاس در as3:

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

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

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

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

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

barnamenevisjavan
سه شنبه 12 دی 1391, 11:00 صبح
میشه یه توضیح بدید که با اکشن اسکریپت چه برنامه ای مثلا میتونیم بنویسیم؟IDE خاصی داره؟

magnetbox.ir
شنبه 16 دی 1391, 09:59 صبح
برای کپی کردن متن در Clipboard از کد زیر استفاده کنید .


import flash.system.System;

System.setClipboard("matn")


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


import flash.system.System;

System.setClipboard(textBox.text)


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

magnetbox.ir
دوشنبه 18 دی 1391, 11:11 صبح
آموزش اجرای فایل exe در فلش

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

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

کد به صورت :

fscommand("exec",name file);

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

magnetbox.ir
دوشنبه 14 اسفند 1391, 18:46 عصر
آموزش لود فایل 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
دوشنبه 14 اسفند 1391, 18:58 عصر
آموزش removeChild

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

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

که می شه این :


this.removeChild(mc);
mc = null;