تبلیغات
تبلیغات متنی
محبوبترینها
معرفی و فروش بوته گرافیتی ریخته گری
بهترین بروکر برای معاملات فارکس در سال 2024
تجربه رانندگی با لندکروز در جزیره قشم؛ لوکسترین انتخاب
اکسپرتاپ: 10 شغل پردرآمد برای مهاجران کاری در کانادا
بهترین سایتهای خرید تیک آبی رسمی اینستاگرام در ایران
کدام رنگ کاغذ دیواری مناسب فضای شماست؟
چه چیزهایی دیگر در دکوراسیون مد نیست؟!
بررسی قیمت تیرچه + قیمت تیرچه کرومیت + قیمت یونولیت
خرید و قیمت ورق در مشاوران آهن + [مشاوره رایگان]
تیوی وال: ایدهای نوین برای دکوراسیون داخلی
صفحه اول
آرشیو مطالب
ورود/عضویت
هواشناسی
قیمت طلا سکه و ارز
قیمت خودرو
مطالب در سایت شما
تبادل لینک
ارتباط با ما
مطالب سایت سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون
مطالب سایت سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون
آمار وبسایت
تعداد کل بازدیدها :
1812744034
![archive](https://vazeh.com/images/2archive.jpg)
![نمایش مجدد: برنامه نويسي action script 3.00 refresh](https://vazeh.com/images/refresh.gif)
برنامه نويسي action script 3.00
واضح آرشیو وب فارسی:سایت ریسک: SEPIDEH JAN07-08-2008, 12:32 PMسلام دوستان . اين تاپيك كه خداي نكرده تكراري نيست ؟؟؟ يه خبري بدين:11: Arman_BM16-08-2008, 12:51 AMسلام - نه دوست عزیز من که ندیدم و به شدت مشتاق آموزش های شما هستم. برای شروع هم خودم با چند سوال (البته با اجازتون) اومدم. تو این زبان، به چی ها میگن inheritance ؟ اصلا همچین چیزی داره؟؟؟؟؟؟؟؟؟؟؟؟ دستور as چیکار میکنه؟ مثلا تو کد زیر ، قسمتی که پر رنگ کردم یعنی چی؟ public function getIsValid(testObject:Object):Boolean { var testString:String = (testObject as String); if (testString) { return testString.length > 0 }} چه فرقی میکنه که کد رو به صورت بالا بنویسیم (استفاده از دستور as) ویا به این صورت پایین؟ : public function getIsValid(testObject:Object):Boolean { if (testObject is String) { var testString:String = String(testObject); return testString.length > 0; } کد زیر یعنی چی؟ var myObject:Object = new Object(); -------------------------------------------------------- پیشاپیش خیلی خیلی خیلی ممنون از دوست خوبی که جواب میده .. واقعا من دنبال جواب این سوال ها هستم و کارم گیره. خواهشا لطف کنین این ها رو جواب بدین... ممنون دوستای عزیز. یا حق SEPIDEH JAN17-08-2008, 09:44 PMتو این زبان، به چی ها میگن inheritance ؟ اصلا همچین چیزی داره؟؟؟؟؟؟؟؟؟؟؟؟ مثلا 3 تا کلاس داریم کلاس اول friend کلاس دوم هست .(یعنی کلاس دوم موتونه از به Data Member ها و Member Function های کلاس اول استفاده کنه) و کلاس سوم از کلاس دوم تشکیل شده یعنی همون Inheritance به صورت public(یعنی کلاس سوم به DataMember ها و Member function های کلاس دوم دسترسی داشته باشه ) دستور as چیکار میکنه؟ مثلا تو کد زیر ، قسمتی که پر رنگ کردم یعنی چی؟ public function getIsValid(testObject:Object):Boolean { var testString:String = (testObject as String); if (testString) { return testString.length > 0 }} فايل external ه اكشن اسكريپته ديگه ! چه فرقی میکنه که کد رو به صورت بالا بنویسیم (استفاده از دستور as) ویا به این صورت پایین؟ : public function getIsValid(testObject:Object):Boolean { if (testObject is String) { var testString:String = String(testObject); return testString.length > 0; } کد زیر یعنی چی؟ var myObject:Object = new Object(); فكر كنم اين توضيحات بدردت بخوره : var myobject:Object = new Object (); myobject.change = function (obj) { var mycomponent = obj.target; var myselected = mycomponent.selectedItem.data; pricetxt.text = myselected.price; descriptiontxt.text = myselected.description; loadpic.loadMovie (myselected.pic); }; mycombobox.addEventListener ("change", myobject); توضيح كد بالا : خط اول يك آبجكت را ايجاد مي كند . خط دوم ، رويداد change را كه همان رويداد شنوده ComboBox در خط آخر است را به آبجكت اضافه مي كند . خط سوم ، توسط متد target ، به مسير شنوده اي كه اين آبجكت را درخواست كرده دسترسي پيدا مي كند . خط چهارم ، به data آيتم انتخابي ComboBox ارجاع داده مي شود . و از آبجكتهاي درون data كه ( price , description , pic ) هستند در خط هاي بعدي براي بارگزاري استفاده مي كنيم . SEPIDEH JAN17-08-2008, 09:47 PMاينم توضيحات كامل بخشي كه ARMAN_BM عزيز ميخواست : اين مقاله يك نمونه عملي براي استفاده كردن از سندهاي XML درون فايلهاي فلش مي باشد . نوع سفارش : شخصي به پيش شما مي آيد و از شما مي خواهد صفحه فلشي برايش ايجاد كنيد تا بتواند 3 تا از محصولات شركتش را كه داراي پارامترهاي نام كالا ، قيمت كالا ، توضيحي درباره كالا و يك قطعه عكس مربوط به كالا ، كه در كنار اين توضيحات بايد قرار گيرد را برايش طراحي كنيد . و بايد طوري طراحي شود كه بعدا خود مشتري بتواند براحتي محصولي را اضافه و يا حذف نمايد . انجام كار : 1. يه پوشه جديد ايجاد كنيد 2. عكسهايي كه مشتري به شما داده را درون پوشه اي جديد به نام pic قرار دهيد . 3. در پوشه اصلي ، يك سند xml به نام company_data ايجاد نماييد و كد زير را به داخل آن كپي كنيد . كد:<list> <product name="camera_1"> <price>$800</price> <description>this is camera_1</description> <pic>pic/camera_1.jpg</pic> </product> <product name="camera_2"> <price>$1200</price> <description>this is camera_2</description> <pic>pic/camera_2.jpg</pic> </product> <product name="camera_3"> <price>$1500</price> <description>this is camera_3</description> <pic>pic/camera_3.jpg</pic> </product> </list> چند نكته براي نوشتن سند XML : نام tag ها كاملا شخصي است ، هر tag مي تواند شامل يك سري attribute هاي شخصي باشد ، مقادير attribute بعد از علامت = داخل دو كوتيشن قرار مي گيرد ، هر tag مي تواند شامل يك سري عناصر – ويژگيها و مقادير باشد ، هر tag با <tagname> شروع مي شود و با </tagname> بسته مي شود ، سندهاي xml به حروف كوچك و بزرگ حساس است . توضيح كد بالا : برچسب list در حقيقت بدنه سند xml ما محسوب مي شود . اين بر چسب شامل سه عنصر ، به نام product مي باشد . كه توسط ويژگي name ، نام محصول ما معرفي مي شود . هر عنصر product ، خود شامل سه عنصر مي باشد كه توسط مقادير آنها ما مي توانيم به قيمت كالا ، شرح كالا و آدرس محل قرار گيري تصوير كالا دسترسي پيدا كنيم . 4. در پوشه اصلي يك سند فلش ايجاد كنيد . كه شامل چهار لايه به نامهاي loadpic , text , component , as باشد . 5. به لايه component يك ComboBox اضافه كنيد و نام نمونه آن را mycombobox قرار دهيد . 6. در لايه text دو عدد متن از نوع static: اضافه كنيد و نام يكي را price و ديگري را :description قرار دهيد تا به عنوان برچسب از آنها استفاده نماييم . سپس دو متن ديگر از نوع dynamice در كنار برچسبها قرار دهيد . نام نمونه آنها را pricetxt و descriptiontxt قرار دهيد تا بعدا داده هاي ما را دريافت كنند . 7. در لايه loadpic يك سيمبل از نوع movieclip ، كه نقطه اتكائي ان در سمت بالا – چپ باشد را ايجاد كنيد و در محل مناسب قرار دهيد و به آن نام نمونه loadpic را بدهيد . 8. به فريم اول لايه as ، كد زير را وارد كنيد كد:var myxml:XML = new XML (); myxml.ignoreWhite = true; myxml.load ("company_data.xml"); myxml.onLoad = function (success) { if (success) { success_function (); } else { trace ("Error"); } }; توضيح كد بالا : خط اول ، آبجكت xml را ايجاد مي كند . خط دوم ، فضاي خالي سند xml ما را ناديده مي گيرد . خط سوم ، سند xml ما را فراخواني مي كند ، اما چون اين فراخواني بسته به حجم سند ما ممكن است كمي با تاخير انجام شود از تابع onLoad در خط چهارم استفاده مي كنيم . اين تابع در صورتي كه بارگذاري سند موفقيت آميز باشد مقدار true و در غير اين صورت مقدار false را براي ما بر مي گرداند . در كد بالا اگر مقدار true باشد تابعي را فراخواني مي كند كه در زير آمده . كد:var myarray:Array = new Array (); success_function = function () { var mylist = myxml.firstChild; for (a = 0; a < mylist.childNodes.length; a++) { var myproduct = mylist.childNodes[a]; var mylabel = myproduct.attributes.name; var mydata_price = myproduct.childNodes[0].childNodes[0].nodeValue; var mydata_description = myproduct.childNodes[1].childNodes[0].nodeValue; var mydata_pic = myproduct.childNodes[2].childNodes[0].nodeValue; var mydata = {price:mydata_price, description:mydata_description, pic:mydata_pic}; myarray.push ({label:mylabel, data:mydata}); } }; توضيح كد بالا : خط اول آرايه اي را براي ما ايجاد مي كنه تا بعدا داده هاي سند xml خود را در آن ذخيره كنيم . خط دوم تابعي را براي ما تعريف مي كند . خط سوم ، داراي يك متد به نام firstChild مي باشد كه اولين گره يا همان <list> سند را براي ما دريافت مي كنه و آن را به متغيري به نام mylist اختصاص مي دهد تا با اين كار mylist خود به عنوان يك شي xml ديگر محسوب شود . خط چهارم ، حلقه اي را براي ما ايجاد مي كند ، اين حلقه به اندازه تعداد عناصر <list> كه 3 تا است ادامه مي يابد . خط پنجم ، توسط متد childNodse[a] ، كه دسترسي به گره هاي عناصر را توسط شماره آرايه براي ما ميسر مي كند به <product> ها دسترسي پيدا مي كنيم . ( اولين عنصر با شماره [0] معين مي شود ) . اين دسترسي را توسط myproduct حفظ مي كنيم . خط ششم ، نام محصول ما را از attribute عنصر مي گيره و در متغير mylabel ذخيره مي كند . خط هفتم – هشتم و نهم ، مقدار محتواي گره هر محصول را توسط متد nodeValue براي ما مي گيره و در متغيرها ذخيره مي كنه . ( تذكر مهم : خود محتواي عنصر هم يك گره محسوب مي شود ) . سه خط كد بالا در خط دهم به صورت يك آبجكت تبديل مي شوند و در پايان هم توسط متد push ، داده هاي xml ما ، به صورت آبجكت در آرايه ذخيره مي شود . در اصل آرايه ما توسط اين حلقه به صورت زير تشكيل يافته است : كد:myarray[a] = {label:نام_كالا , data:{price:قيمت , description: شرح, pic:آدرس_عكس}}; خوب حالا توسط كد زير داده هاي آرايه را به كامپوننت ComboBox وارد مي كنيم . كد:mycombobox.dataProvider = myarray; توسط كد زير براي نمونه آبجكت ComboBox يك شنوده را اضافه كنيم . كد:var myobject:Object = new Object (); myobject.change = function (obj) { var mycomponent = obj.target; var myselected = mycomponent.selectedItem.data; pricetxt.text = myselected.price; descriptiontxt.text = myselected.description; loadpic.loadMovie (myselected.pic); }; mycombobox.addEventListener ("change", myobject); توضيح كد بالا : خط اول يك آبجكت را ايجاد مي كند . خط دوم ، رويداد change را كه همان رويداد شنوده ComboBox در خط آخر است را به آبجكت اضافه مي كند . خط سوم ، توسط متد target ، به مسير شنوده اي كه اين آبجكت را درخواست كرده دسترسي پيدا مي كند . خط چهارم ، به data آيتم انتخابي ComboBox ارجاع داده مي شود . و از آبجكتهاي درون data كه ( price , description , pic ) هستند در خط هاي بعدي براي بارگزاري استفاده مي كنيم . كد نهايي به صورت زير مي باشد : كد:var myxml:XML = new XML (); myxml.ignoreWhite = true; myxml.load ("company_data.xml"); myxml.onLoad = function (success) { if (success) { success_function (); } else { trace ("Error"); } }; var myarray:Array = new Array (); success_function = function () { var mylist = myxml.firstChild; for (a = 0; a < mylist.childNodes.length; a++) { var myproduct = mylist.childNodes[a]; var mylabel = myproduct.attributes.name; var mydata_price = myproduct.childNodes[0].childNodes[0].nodeValue; var mydata_description = myproduct.childNodes[1].childNodes[0].nodeValue; var mydata_pic = myproduct.childNodes[2].childNodes[0].nodeValue; var mydata = {price:mydata_price, description:mydata_description, pic:mydata_pic}; myarray.push ({label:mylabel, data:mydata}); } }; mycombobox.dataProvider = myarray; var myobject:Object = new Object (); myobject.change = function (obj) { var mycomponent = obj.target; var myselected = mycomponent.selectedItem.data; pricetxt.text = myselected.price; descriptiontxt.text = myselected.description; loadpic.loadMovie (myselected.pic); }; mycombobox.addEventListener ("change", myobject); SEPIDEH JAN17-08-2008, 09:50 PMابتدا از هر يک از کامپوننت هاي Alert,Button,List,MenuBar,TextArea,UIScrollBar يک عدد به داخل stage بکشيد و بعد آنها را حذف کنيد. توجه: از داخل Library حذف نکنيد تا کلاس هاي آنها بتوانند مورد بهره برداري قرار گيرند. حالا کد زير را در فريم 1 وارد کنيد: كد:// Designer : Navid // Begin import mx.styles.CSSStyleDeclaration; import mx.controls.Alert; import mx.controls.Button; import mx.controls.List; import mx.controls.MenuBar; import mx.controls.TextArea; import mx.controls.UIScrollBar; _root.createClassObject(MenuBar, "myMenuBar", 10); this["createClassObject"](TextArea, "m", 11); this.m._x = 7.2; this.m._y = 32; m.setSize(534.8, 328.5); _root.createTextField("mystatusbar", 12, 7.2, 365.5, 298.9, 28.9); mystatusbar.variable = "mytext"; _root.createEmptyMovieClip("preview", 13); with (preview) { beginFill("0x000000", 100); moveTo(30.8, 73); lineTo(484, 74); lineTo(484, 321); lineTo(31, 321); lineTo(30.8, 73); } _root.preview.createClassObject(List, "fonts", 150, {_x:45, _y:125.3, _width:183, _height:103}); _root.preview.createClassObject(List, "styles", 160, {_x:240, _y:125.3, _width:100, _height:103}); _root.preview.createClassObject(List, "sizes", 156, {_x:350, _y:125.3, _width:100, _height:103}); _root.preview.styles.addItem({label:"Regulac"}); _root.preview.styles.addItem({label:"Italic"}); _root.preview.styles.addItem({label:"Bold"}); _root.preview.styles.addItem({label:"Bold Italic"}); for (j=9; j<=30; ++j) { _root.preview.sizes.addItem({label:j}); } _root.preview.createClassObject(Button, "OKButton", 153, {_x:260, _y:290, _width:100, _height:22}); _root.preview.createClassObject(Button, "CancelButton", 154, {_x:370, _y:290, _width:100, _height:22}); _root.preview.OKButton.label = "OK"; _root.preview.CancelButton.label = "Cancel"; _root.preview.OKButton.onRelease = function() { _root.m.setStyle("fontFamily", _root.preview.fonts.selectedItem.label); _root.m.setStyle("fontSize", _root.preview.sizes.selectedItem.label); if (_root.preview.styles.selectedItem.label == "Regulac") { _root.m.setStyle("fontStyle", "normal"); _root.m.setStyle("fontWeight", "none"); } if (_root.preview.styles.selectedItem.label == "Italic") { _root.m.setStyle("fontStyle", "italic"); _root.m.setStyle("fontWeight", "none"); } if (_root.preview.styles.selectedItem.label == "Bold") { _root.m.setStyle("fontWeight", "bold"); } if (_root.preview.styles.selectedItem.label == "Bold Italic") { _root.m.setStyle("fontWeight", "bold"); _root.m.setStyle("fontStyle", "italic"); } _root.preview._visible = false; }; _root.preview.CancelButton.onRelease = function() { _root.preview._visible = false; }; preview._visible = !true; mywindow.visible = false; myArray = TextField.getFontList(); for (i=1; i<myArray.length; ++i) { _root.preview.fonts.addItem({label:myArray[i]}); } this.preview.fonts.sortItemsBy("label", "ASC"); _global.styles.TextArea = new CSSStyleDeclaration(); _global.styles.TextArea.setStyle("textAlign", "left"); m.vScrollPolicy = "on"; m.hScrollPolicy = "on"; oneMenu = _root.myMenuBar.addMenu("File"); oneMenu.addMenuItem({label:"New", instanceName:"newNew"}); oneMenu.addMenuItem({type:"separator"}); oneMenu.addMenuItem({label:"Print", instanceName:"newPrint"}); oneMenu.addMenuItem({type:"separator"}); oneMenu.addMenuItem({label:"Exit", instanceName:"newExit"}); var myObject:Object = new Object(); function myClick(evt) { if (evt.detail == 4) { fscommand("quit", ""); } if (evt.detail == 8) { mx.controls.Alert.visible = false; } } myObject.change = function(parameter) { if (parameter["menuItem"].attributes.instanceName == "newNew") { _root.m.text = ""; } if (parameter["menuItem"].attributes.instanceName == "newPrint") { printAsBitmap(_root.m, "bmovie"); } if (parameter["menuItem"].attributes.instanceName == "newExit") { mx.controls.Alert.show("Do you really to exit ?", "Warning...", mx.controls.Alert.OK | mx.controls.Alert.CANCEL, _root, myClick); } }; oneMenu.addEventListener("change", myObject); twoMenu = _root.myMenuBar.addMenu("Edit"); twoMenu.addMenuItem({label:"Copy", instanceName:"newCopy", enabled:false}); twoMenu.addMenuItem({label:"Delete", instanceName:"newDelete", enabled:false}); twoMenu.addMenuItem({type:"separator"}); twoMenu.addMenuItem({label:"Select All - Ctrl+A", instanceName:"newSelectAll", enabled:true}); twoMenu.addMenuItem({label:"Time/Date", instanceName:"newTime", enabled:true}); var myObject2:Object = new Object(); myObject2.change = function(evt2) { if (evt2["menuItem"].attributes.instanceName == "newCopy") { System.setClipboard(_root.m.text); } if (evt2["menuItem"].attributes.instanceName == "newDelete") { _root.m.text = ""; } if (evt2["menuItem"].attributes.instanceName == "newTime") { myDate = new Date(); _root.m.text += myDate.getHours()+":"+myDate.getMinutes()+" "+myDate.getFullYear()+"/"+myDate.getMonth()+"/"+myDate.getDay(); } }; twoMenu.addEventListener("change", myObject2); _root.onEnterFrame = function() { mytext = "Col : "+m.length; if (Key.isDown(Key.CONTROL)) { if (Key.isDown(65)) { Selection.setFocus(_root.m); Selection.setSelection(0, _root.m.length); } } myLength = _root.m.length; if (myLength<>0) { _root.depthChild 1.newCopy.attributes.enabled = true; _root.depthChild 1.newDelete.attributes.enabled = true; } else { _root.depthChild 1.newCopy.attributes.enabled = false; _root.depthChild 1.newDelete.attributes.enabled = false; } if (_root.depthChild 2.myCheck.attributes.selected == true) { _root.m.wordWrap = true; } else if (_root.depthChild 2.myCheck.attributes.selected == false) { _root.m.wordWrap = false; } if (_root.depthChild 3.myCheck2.attributes.selected == true) { _root.mystatusbar._visible = 1; } else { _root.mystatusbar._visible = 0; } }; threeMenu = _root.myMenuBar.addMenu("Format"); threeMenu.addMenuItem({label:"Font", instanceName:"newFont", enabled:true}); threeMenu.addMenuItem({type:"check", label:"Word Wrap", enabled:true, selected:true, instanceName:"myCheck"}); myObject3 = new Object(); myObject3.change = function(evt3) { if (evt3["menuItem"].attributes.instanceName == "newFont") { _root.preview._visible = true; } }; threeMenu.addEventListener("change", myObject3); fourMenu = _root.myMenuBar.addMenu("View"); fourMenu.addMenuItem({type:"check", label:"Status Bar", enabled:true, selected:true, instanceName:"myCheck2"}); fscommand("showmenu", false); // End حالا سيو کرده و برنامه را اجرا کنيد. بهتر است خروجي به صورت exe باشد. SEPIDEH JAN17-08-2008, 09:51 PMكد زير را در فريم 1 وارد كنيد تا تشخيص دهد حتما بايد كليد space فشرده شود و نتيجه ديده شود يعني با هر بار فشردن آن اطلاعات به روز مي شود ياد تون نره كليد space را فشار دهيد و نتيجه را ببينيد: كد:_root.createTextField("display", 0, 100, 100, 200, 200); var myTextFormat:TextFormat = new TextFormat(); myTextFormat.font = "tahoma"; myTextFormat.size = 14; display.selectable = false; var myObject:Object = new Object(); myObject.onKeyUp = function() { if (Key.getCode() == (Key.SPACE)) { display.text = "لطفا کمي صبر کنيد"; display.setTextFormat(myTextFormat); var myLoadVars:LoadVars = new LoadVars(); var myLoadVars2:LoadVars = new LoadVars(); myLoadVars.sendAndLoad("http://www.yahoo.com", myLoadVars2, "POST"); myLoadVars2.onLoad = function(a:Boolean) { if (a == true) { display.text = "شما به اينترنت وصل هستيد"; display.setTextFormat(myTextFormat); } if (a == false) { display.text = "شما به اينترنت وصل نيستيد"; display.setTextFormat(myTextFormat); } }; } }; Key.addListener(myObject); Arman_BM18-08-2008, 01:32 AMسلام Sepideh Jan عزیز. بسیار لطف کردید که انقدر با حوصله به سوالات من پاسخ دادید و چند پست مفید دیگر هم دادید اما.... اما کاشکی یکم ساده تر توضیح میدادید - من فقط جواب سوال آخرم رو تونستم بفهمم. البته خیلی ممنونم اما اگه توضیح رو در حد کسی رو بگین که از برنامه نویسی فقط تابع و آرایه و حلقه ها و امثالهم رو میدونه خیلی مفید تره .. اگه ساده تر هم شد که چه بهتر .. بسیار و بسی ممنونم ------------------------------------ در مورد پست های خودتون هم این قضیه وجود داره. صرف دادن کد فقط کار عده ی کمی رو راه میندازه (ماهی دادن هست) اما اگه دستورات خود As3 رو شروع کنین توضیح دادن ویا همون As3 رو درس بدید خیلی خیلی عالی و پر طرفدار خواهد شد . (ماهی گیری یاد دادن است) باز هم بسیار ممنون که وقت گذاشته، مرحمت فرمودید و جواب سوالات این جانب را دادید. منتظر آموزش های بعدی شما هستیم یا حق SEPIDEH JAN18-08-2008, 11:56 AMاين پست ويرايش شد SEPIDEH JAN18-08-2008, 12:05 PMسلام دوست عزيز چشم ! از اول اكشن اسكريپت رو توضيح ميدم . SEPIDEH JAN18-08-2008, 12:11 PMيكي از جلوه هاي مهم فلش اينكه شما مي تونيد با يه كم برنامه نويسي تسلط بيشتري را بر روي اون كارهاي گرافيكي كه با فلش انجام مي ديد داشته باشد. نماي ظاهري Active Script : http://www.majidonline.com/images/Tutorials/AC_L1_Pic01.gif در قسمت سمت چپ قسمت Active Script يك پنجره اي است كه شامل منو هاي مختلفي است كه هر كدام از آن منو ها هم داراي زير منوهاي مختلفي هستند. منوي Actions داراي اجزايي اصلي است كه با آن ها بيشتر كارهاي Active Script را انجام مي دهند. منوي Operators مربوط مي شود به آن علامت هايي كه در دستورات شرطي يا حلقه و... مورد استفاده قرار مي گيرد. منوي Function مربوط مي شود به تابع ها و نوع متغير ها و... منوي Constants مربوط مي شود به مقدار دهي متغير ها ... منوي Properties و Objects مربوط مي شود به خصوصيات مربوط به Object ها (اشيا) و ... منوي Deprecated شامل خصوصياتي براي تمام اشيا مي باشد ... و بالاخره منوي Index : اين منوي شامل تمام اجزاي ديگر منو ها به ترتيب الفبا مي باشد. SEPIDEH JAN18-08-2008, 12:15 PMدر ادامه بحث مي خواهم اطلاعات كامل تري در اختيارتان قرار دهم. نماي منوي بالايي Action Script : http://www.majidonline.com/images/Tutorials/AS2_Pic01.gif در سمت راست اين منو يك آيكن وجود دارد http://www.majidonline.com/images/Tutorials/AS2_Pic02.gif كه با زدن بر روي اين آيكن منوي ديگري باز مي شود : http://www.majidonline.com/images/Tutorials/AS2_Pic03.gif اين منو شامل ابزار هايي براي استفاده بهتر از Action Script است از جمله مثلا" جستجوي رشته اي در Action Script يادخيره Action Script هاي نوشته شده و... 2 گزينه اوليه اين منو بسيار مهم هستند كه اين 2 گزينه چگونگي كار با Action Script را مشخص مي كند. يعني اگر شما بر روي گزينه Normal Mode كليك كنيد در قسمت نوشتن دستور ها به طور دستي نمي توانيد تغيير ايجاد كنيد ، اما اگر گزينه Expert Mode را انتخاب كنيد مي توانيد به صورت دستي هم دستورات و كد ها را همانند يك زبان برنامه نويسي تغيير دهيد يا چيز ديگر طبق قوانين برنامه نويسي به كد ها اضافه كنيد. http://www.majidonline.com/images/Tutorials/AS2_Pic04.gif ممكن است اين مطلب براي شما مقداري گيج كننده باشد كه در جلسات آينده بيشتر توضيح ميدهم(بر روي مثال ها). و حالا يك مقدار در باره قوانين و مسايل برنامه نويسي : اصل كار برنامه بر روي متغيير هاست .متغيير به قسمتي از حافظه اصلي كامپيوتر گفته مي شود كه ما براي ذخيره سازي اطلاعات از آن ها استفاده مي كنيم. زباني كه Action Script , Flash از اون استفاده مي كند خيلي شبيه JavaScript يا همون C++ است. متغيير ها انواع مختفي دارند كه ما مي توانيم بسته به نياز خود آن ها را تعريف كرد.متغيير ها به 2 نوع به نام عددي و رشته اي تقسيم مي شوند. نمي خواهم اين قسمت را فعلا" زياد توضيح بدم چون امكان داره براي شما خسته كننده باشه. ولي فقط اين رو بگم كه با متغيير هاي عددي مي شود محاسبات رياضي انجام داد اما با متغيير هاي غير عددي يا همون رشته نمي شود. در اين زبان براي مقدار دهي به متغيير ها از = استفاده مي شود مثلا " اگر بخواهيم مقدار 2 را در متغيير x قرار دهيم مي نويسيم : x=2 البته اگر بنويسيم ;x=2 بهتر است چون علامت ; به معناي اتمام دستور است. SEPIDEH JAN18-08-2008, 12:16 PMاين جلسه مي خوام با آوردن يك مثال به برنامه نويسي تحت Action Script بيشتر آشنا بشويد. يه توضيح مختصر : 1 . قبلا" گفتم كه متغيير ها انواعي دارند وبراي استفاده از آن ها بايد آن ها را در اول برنامه تعريف كرد اما در در زبان Flash ; Action Script مي توان بدون اينكه متغيير را تعريف كرد از آن ها استفاده كرد. 2 . تعريف تابع : تابعي به تيكه كدي گفته مي شود كه از طرف زبان برنامه نويسي يا خود برنامه نويس براي سرعت بخشيدن و آسان تر شدن كار ها از آن ها استفاده مي شود. اين مثالي كه مي زنم به اين صورت است كه اگر شما به فرض 3 انيميشن داشته باشد و بخواهيد به صورت تصادفي (Random) نشان داده شود. خوب فلاش را اجرا كرده و 3 تا Scene بسازيد و در هر كدام از آن ها يه انيميشن طراحي كنيد. بعد به Scene1 آمده و با موس بر روي فريم اول كليد كنيد وبعد با زدن كليد F9 منوي Action Script را فعال كنيد. بعد با زدن كليدهاي Ctrl+Shift+E حالت Action Script را از Normal Mode به Expert Mode تغيير دهيد.( كليد قرينه اين گزينهCtrl+Shift+N است كه Action Script به حالت Normal Mode بازخواهد گشت.) حالا در قسمت وارد كردن كد ها بنويسيد : x=Random(4); تابع Random تابعي است كه عدد تصادفي درست مي كند. و اين دستور به Action Script مي گويد كه يك عدد تصادفي توليد بين 1 تا 3 توليد كن و آن را در متغيير x قرار بده. بعد در همين فريم بعد از دستور قبلي اين دستور ها را وارد كنيد: if (x == 1) { gotoAndPlay("Scene 1", 2); } else if (x == 2) { gotoAndPlay("Scene 2", 1); } else if (x == 3) { gotoAndPlay("Scene 3", 1); } در اينجا دستوري قرار دارد به نام if . از اين دستور براي گذاشتن شرط در برنامه استفاده مي شود. خط اول اين شرط را بررسي ميكند كه اگر مقدار موجود در متغيير x = 1 بود دستور gotoandplay("Scene 1", 2) را اجرا كن. كه اين دستور به اين معني است كه به Scene1 ; فرم دوم برو . اگر if اول اجرا شد يعني اگر مقدار x=1 بقيه كد اجرا نمي شود به جز دستوري كه در زير مجموعه if بود ولي اگر شرط اول درست نباشد به خط سوم مي رود. در خط سوم نوشته شده } else if (x==2) { . اين دستور مي گويد اگر به غير از شرط بالا بود شرط ببين آيا x=2 است يا نه اگر شرط درست باشد دستور gotoandplay("Scene 2",1) اجرا مي شود و ديگر بقيه كد اجرا نمي شود. و در خط پنجم هم همينطور است يعني اگر شرط دوم اجرا نشد و x=3 بود دستور gotoandplay("Scene 2",1) اجرا شود. و حالا در پايين شما بايد به فرم آخر آن ها رفته و در Action Script اين فرم ها بنويسيد: stop(); البته مي شه اين مثال را كامل ترش هم كرد كه اميد وارم بتونيد اين كار رو خودتون انجام بدهيد. اما اگه سوالي يا هر اشكال ديگه اي داشتيد مي تونيد در انجمن Action Script بپرسيد كه يا خودم يا كسي ديگه از دوستان كمكتون ميكنه. SEPIDEH JAN18-08-2008, 12:19 PMاين جلسه هم مي خواهم درادامه درس مثال ديگري از قابليت هاي فلش رو نشونتون بدم. خوب در قدم اول وارد فلش شده و به ترتيب کارهاي زير را انجام دهيد. يه مربع بسازيد.( فعلا" اندازش مهم نيست) حالا در حالي که مربع را انتخواب کرديد ; کليد F8 را زده و گزينه MovieClipرا انتخاب کرده و اسمش رو bbبزاريد .حالا به منوي Windowرفته و گزينه Bottonsرا از منوي CommonLibrariesانتخواب کنيد. يک کتابخانه باز شده که يک سري دکمه در داخل اون وجود داره به سليقه خودتون يک دکمه ساده و 2 تا دکمه فلش دار که يکي به سمت راست است و ديگري به سمت چپ است رو انتخواب کرده و دونه دونه به سمت مستطيلي که ساختيد بکشيد تا به فايل شما اضافه بشن. حالا بر روي مربعي که ساختيد برويد و طول و عرض اون به 400 تغيير بدهيد. ( براي اينکه اندازه ها دقيق باشه به منوي Propertiesبرويدو در قسمت که نوشته 400 ; W: و در جايي که نوشته400 ; H: را وارى کنيد.) و حالا يک يه textاضافه کنيد و نوع اونو در Propertiesتش از نوع DynamicTextقرار دهيد و در زير اين گزينه يه قسمتي است که نوشته instanceName; بر روي اون کليک کرده و تا اين نوشته پاک شود و در اينجا بنويسيد edit1; اين نام اون Text مي شود. و حالا براي اينکه اين Textشما معلوم باشه بايد يه مستطيلي رو در پشت اون قرار بديد تا نوشته اون معلوم باشه. خوب حالا کم کم وارد ActionScriptمي شيم. حالا روي مربع کليد کرده و همون طور که براي Text اسم گزاشتيد اسم اين رو هم Box1بزاريد . و حالا بر روي اون دکمه اي که فلش نداره کليک کنيد و بعد F9 رو بزنيد تا ActionScriptآورده شود.حالا کليد هاي Ctrl+Shift+Eرو بزنيد تا ActionScript به حالت ExpertMode برود. بعد کدهاي زير رو وارد کنيد on (release) { pic = edit1.text; loadMovie("images/image"+pic+".jpg", "box1"); box1._x = 176; box1._y = 26.9; } خط اول يعني وقتي روي اين دکمه کليک کرد بقيه دستورات که بعد از { وجود داره انجام بشه. خط دوم : ما به اون Textکه قبلا" شاختيم اسم Edit1را داديم حالا اين خط ميگويد که مقدار عددي که در اون Text وجود دارد به داخل متغير Pic برود. يه نکته : اين فايلي را که ساخته ايد ذخيره کنيد و فلش را Minimizeکنيد و به اون مسيري که اين فايل رو ذخيره کرديد برويد و در اون جا يه Folder به اسم images بسازيد و 3 عکس با انشعاب jpgدر اون قرار بديد و به ترتيب اسم اون ها به image1.jpg و image2.jpg و image3.jpg تغيير بدهيد. خط سوم : اين خط اون عکس هايي رو که در Folder ; images قرار دادي بسته به عدد اون Text قبلي مياره. مثلا" اگه عدد داخل اون Text; 1 باشه image1.jpg رو براي شما مياره و حالا مي دونيد اون کجا لود مي کنه ; خوب معلومه اونا رو به جاي اون مربعي که ساختيد مياره ; همون که اسمش Box1 است. خط چهارم وپنجم هم اندازه x ,y (جاي مربع در صفحه ) تعيين مي کنه که اين 2 عدد به دست خودتون و مي تونيد اونو تغيير بديد. خوب حالا روي کليدي که روش علامت سمت راست است کليک کنيد و بعد F9 بزنديد و بعد کد زير رو وارد کنيد: on (release) { edit1.text = parseInt(edit1.text)+1; } خط اول که معني شو ياد گرفتيد. خط دوم : اين خط مقادري که در داخل edit1وجود داره رو به ميگيره و يه واحد به اون اضافه مي کنه. روي کليد که فلش اون به سمت چپ است کليک کنيد و بعد F9 رو بزنيد و کد زير را وارد کنيد : on (release) { edit1.text = parseInt(edit1.text)-1; s1 = edit1.text; if (s1<=1) { edit1.text = "2"; } } خط دوم : اين خط مقا سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 564]
-
گوناگون
پربازدیدترینها