امروز می خواهم یک نرم افزار معرفی کنم که هر چی بخواهید خوب باشه اسم این نرم افزر flash jesterJugglor Evaluation v.2.2 است شما بوسیله این نرم افزار می توانید فایل های فلاش را به اسکریین سیور و پروجکتور تبدیل کنید و کلی قابلیت به فلاش اضافه می کنه مثلاْ شما یک رنگ انتخاب می کنید و در هنگام اجرای برنامه شما به جای آن رنگ صفحه ویندوز خودتان یا همان صفحه پشتی را نشان می دهد حتما دانلود کنید.
اگه دوست داشتید تو نظرات بنویسید تا لینک دانلودشو بزارم.
کد های کمپونت ها به دو دسته عمومی که برای تمامی کمپونت ها یکسان است و اختصاصی که مخصوص یک کمپونت است تقسیم می شود خوب ما در ابتدا کد های عمومی کمپونت ها را بررسی می کنیم :
1- UIObject.bottom
طریقه کار برد :
componentInstance.bottom
توضیح : شما اگر بخواهید یک شی را در زیر شی دیگر قرار دهید بوسیله این دستور می توانید مقدار yمختصات را از این طریق بدست آورید.(فقط خواندنی)
2- ()UIObject.createClassObject
طریقه کاربرد:
componentInstance.createClassObject(className, instanceName, depth, initObject)
توضیح دستوری :
className : نام کمپونتی که می خواهید آن را با مشخصات جدید ایجاد کنید که برای هر کمپونت مجزا است.
instanceName : نام متعارفی جدید
depth : عمق جدید
initObject : دستورات متعلق به این کمپونت.
توضیح : وقتی شما بخواهید در حال run time یا در حال اجرا ی برنامه یک کمپونت را از کتابخانه در stage فرا بخوانید یا ایجاد کنید این دستور به کار می آید و از دستورات پر کاربرد فلاش است .برای مثال شما از کاربر در ابتدا سوالی می پرسید و می خواهید اگر درست جواب داد یک کلید با نام "درست" و اگر اشتباه جواب داد یک کلید با نام "اشتباه" ظاهر شود. می توانید از این دستور استفاده کنید . نمونه آماده شده را از اینجا دانلود کنید.
3- ()UIObject.createLabel
طریقه کاربرد :
(createLabel(name, depth, text
توضیح دستوری :
Name : در این قسمت مسیر کمپونت را مشخص می کنید یا همان نام متعارف instance name را
Depth : عمق جدید شی با نام متعارف
Text : در اینجا لیبل این شی را تعیین می کنیم .
توضیح : خوب از این دستور برای ایجاد یک نوشته در صفحه یا کمپونت ها استفاده می شود و خیلی هم ساده است فقط شما باید نوشته خود را در مکان text بنویسید برای مثال کد زیر را در فرم اول کار خود وارد کنید :
var myTextField_txt:TextField = this.createLabel("multiLineLabel", 100000, "سلام به همه دوستان"); // Set the fontSize style attribute of the TextField. myTextField_txt.setStyle("fontFamily", "Tahoma"); myTextField_txt.setStyle("fontSize", 18); // Set the TextField's initial size. myTextField_txt.setSize(myTextField_txt.getPreferredWidth(), myTextField_txt.getPreferredHeight()); // Set the TextField's initial location in the center of the Stage. myTextField_txt._x = (Stage.width/2)-(myTextField_txt._width/2); myTextField_txt._y = (Stage.height/2)-(myTextField_txt._height/2); |
4- ()UIObject.createObject
طریقه کاربرد :
(componentInstance.createObject(linkageName, instanceName, depth, initObject
توضیح دستوری :
linkageName : این مشخصه همان identifier در library است. و از نوع رشته ایی
instanceName : این هم نا متعارف شی است. و از نوع رشته ایی
depth : عمق شی و از نوع عددی است.
initObject : دستورات متعلق به کمپونت را اینجا باید وارد کرد.
توضیح : شما از این دستور مثل دستور 2 می توانید استفاده کنید و همان کاربرد را دارد و تنها نکته آن این است که دارای linkageName است.
می توانید نمونه انجام شده را از اینجا دانلود کنید.
5- ()UIObject.destroyObject
طریقه کاربرد :
(destroyObject(instanceName
توضیح دستوری :
instanceName : نام متعارف شی ایی که می خواهید از بین برود.
توضیح : شما بوسیله این دستور می توانید کمپونت ها را نابود یا از بین ببرید فقط کافی است مسیر instanceName را در آن وارد کنید. و متضاد دستور 2 و 4 است.
نمونه انجام شده را از اینجا دانلود کنید.
6- ()UIObject.doLater
طریقه کاربرد:
("componentInstance.doLater(target, "function
توضیح دستوری :
Target : مسیر کمپونت
Function : تابعی که باید اجرا شود.
توضیح : این دستور وقتی به طور کامل کمپونت بار گزاری شد تابع را اجرا می کند یا یه چی تو همین مایه ها به نظر من که دستور الکی ایی است .
برای مثال : یک چک باکس به کتابخانه بکشید و کد زیر را در فرم اول آن کپی کنید.
myCheckBox.doLater(this, "delay"); // The function or method called from doLater(). Function delay() { trace(myCheckBox.label); // The property can now be traced // any additional statements go here } |
من که حوصله ام سر رفت اما این دستورا 30 عدد است که در چند روز آینده به طور کامل بررسی می شود اگه جایی مشکلی داره بگین . تو قسمت نظرا...
آهی نثار این دفتر عمل باید کرد آتشی نثار این چشم بی پرده باید کرد
خوب این جمعه هم به پایان آمد و از دوست خبری نیامد است باز این چرخ زمان باید گشت باید این چنین کودکان لبنانی و فلسطینی باز به دست مشتی پوچ اندیش بی همه چیز که خود را قوم برتر جهان می دانند نابود شود. این دیگر چه بازیچه ایی است تمام عالم و آدم می گویند این روش کشتار شما غیر قانونی و غیر اخلاقی و غیر انسانی است . از این چه نتیجه ایی می توان گرفت ؟! آری قومی که مردم بی نوا را به قتل می رساند آیا این قاتل قوم برتر جهان است یا پست ترین قوم روی زمین ؟! آیا این قاتل اصلاً می تواند خود را در زمره انسان ها قرار دهد؟ نه مسلماً غیر ممکن است که گروهی بی همه چیز و از خدا بی خبر که حتی آمبولانس حامل مریض را مورد هدف قرار می دهد بتواند خود را انسان حساب کند غیر ممکن است ........؟؟!
اما ما می دانیم حضرت مهدی (عج) ظهور می کند به تمام این قوم قاتل می گوییم شما در مقابل او هیچ نیستید و نخواهید بود.
مگر این که کودکی، در آغوش پدر جان به یزدان داده،هر دو با هنر
گر مسلمانی به پا خیز ، زود زود چونکه این ظلم است ، دود دود
این نه راه احمد و دیگر اولیاست راه پست جاهلان بی خداست
هرکه این روزش مسلمان گفتهاند نیک تـر او را زقبـل اش گفته اند
به حق محمد به حق علی اش نشاید سکوتی که در پر تو اش
بسوزد خــانـــمـــان دیگر ملـتی همهشانمسلمان وهماهلدین
حـرف دل ما ، شنیدنی تر نبود راهخطاازاینراهشماآشکارتر نبود
به امید فرج آقا امام زمان آلفا پک
در ادامه آموزش قبلی یعنی کمپونت ها ما استیل ها را بررسی کردیم خوب بعد از استیل ها نوبت حالات دینامیکی این کمپونت است مثل در حالت عادی چگونه باشد وقتی موس روی آن حرکت کرد چگونه باشد و چند حالت دیگر :
Property | Description | Default value |
---|---|---|
falseUpSkin |
The up (normal) state of the header above all collapsed children. | accordionHeaderSkin |
falseDownSkin |
The pressed state of the header above all collapsed children. | accordionHeaderSkin |
falseOverSkin |
The rolled-over state of the header above all collapsed children. | accordionHeaderSkin |
falseDisabled |
The disabled state of the header above all collapsed children. | accordionHeaderSkin |
trueUpSkin |
The up (normal) state of the header above the expanded child. | accordionHeaderSkin |
trueDownSkin |
The pressed state of the header above the expanded child. | accordionHeaderSkin |
trueOverSkin |
The rolled-over state of the header above the expanded child. | accordionHeaderSkin |
trueDisabledSkin |
The disabled state of the header above the expanded child. | accordionHeaderSkin |
خوب برای استفاده از جدول با لا می توانید روش زیر را دنبال کنید :
اول در پنجره اصلی یک سند از نوع ActionScript class file ایجاد کنید.
و کد زیر را در آن وارد کنید :
و فایل مورد نظر را با نام RedGreenBlueHeader.as ذخیره کنید
و دوباره یک سند جدید از نوع خودمون FLA file ایجاد کنید و در هما شاخه ایی که فایل قبلی را ذخیره کردید این یک را نیز ذخیره کنید.
و با استفاده از کلید های ترکیبی ctrl+F8 یک سیمبل جدید با نام AccordionHeaderSkin و از نوع موی کلیپ و روی کلید Advanced و چک باکس Export for ActionScript را تیک بزنید .
در مقابل identifier باید عبارت AccordionHeaderSkin و در مقابل AS 2.0 class باید عبارت RedGreenBlueHeader را تایپ کنید مانند شکل زیر:
حال کمپونت را از زیر شاخه user interface انتخاب و به داخل stage خود بکشید و با استفاده از کلید های ترکیبی ctrl+f3 قسمت properties را ظاهر و منوی parameters را انتخاب کنید. و چند بخش ایجاد کنید.
حال کار خود را امتحان کنید بوسیله کلید های ترکیبی ctrl+enter
می توانید سورس برنامه به طور کامل را همراه با آموزش قبلی از اینجا دانلود کنید.
در قسمت بعدی می خواهیم تمام کد های مخصوص به این کمپونت یعنی Accordion را بررسی کنیم.
درج با ذکر منبع ( www.alphapack.co.sr ) بلامانع است.
البته چون این مطلب توژه آماده نشد برای اینکه وبلاگ خالی نباشه براتون اینو گذاشتم به جون شما خیلی با حاله این مقاله و خیلی هم کاربردیه :
آموزش ذخیره اطلاعات با Flash و Php ( و چگونگی ارتباط با بانکهای اطلاعاتی) سطح : پیشرفته سلام دوستان ... چند تا از دوستان بهم پیغام خصوصی داده بودن که این مقاله رو بنویسم ... و حالا با کمی تاخیر به قولم عمل میکنم ... اول باید چند تا نکته رو بگم ... فلش (فعلا) این قابلیت رو نداره که اطلاعات شما (معمولا متغیر ها) رو به طور مستقیم داخل یه فایل ذخیره کنه و یا اینکه با بانکهای اطلاعاتی ارتباط داشته باشه ... البته قابلیتی که در فلش MX 2004 گنجونده شده اینه که شما میتونید با استفاده از اون مکانی رو برای ذخیره اطلاعات قرار بدید ... ٌٌکه البته دو تا عیب داره ... یکی اینکه دوراز دسترس کاربر نهاییه و دیگری این که شما فقط در Windows میتونید از اون استفاده کنید و امکان استفاده در Server رو ندارید ... حالا ما اینجا روشی رو میگیم که شما میتونید با استفاده از اون در سرور هایی که Php رو پشتیبانی میکنن ، اطلاعات تون رو ذخیره کنید ... در آخر هم با استفاده از همین روش ، چگونگی ارتباط بین فلش و Php رو برای دسترسی به MySql DataBase می گیم ...
برای اینکه شما بتونید اطلاعاتتون رو ذخیره کنید به این احتیاج دارید که متغیر هاتون رو به یک فایل Php بفرستید تا براتون ذخیره کنه ... فرستادن متغیر ها به دو صورت ( متد Method ) امکان پذیره ... یکی به صورت GET و دیگری به صورت POST . درخواست های Get معمولا از ایمنی کمتری برخوردارن ... چون محتویات متغیر هاتون رو هنگام ارسال ، بصورت واضح نشون میده .... (البته نه در فلش ... اگر در فلش از این متد استفاده کنید ... فقط توی Temporary Internet Files در خواست ها دیده میشن) در خواست های GET معمولا به صورت زیره :
|
http://www.Your-Server.com/file.php?variable=Content |
همونطور که میبینید به وضوح ، توی فایل "File.php" متغیری به نام "variable" ایجاد شده که محتویاتش "Content" هست ...
اما درخواست های POST بدون اینکه دیده بشن ، ارسال میشن ... توی فلش هم شما آزاد هستید که از هر کدوم از اینها بخواید استفاده کنید ... حالا شروع میکنیم به ساخت فایلهامون ... فرض کنید میخوایم یه فرم بسازیم که کابر بتونه توسط اون ثبت نام کنه ... و شما هم میخواید که نام کابری ، کلمه عبور و ایمیل اون رو با فرمت خاصی وارد فایلی به نام "Users.txt" بکنید ... میخوایم هر کاربری که ثبت نام میکنه با فرمت Username: String/Password: Hash Md5/E-mail: String توی فایل بنویسید ... مثلا این یه فایل نمونه است :
|
Amir/ca0dbad92a874b2f69b549293387925e/amir_s32@yahoo.com
Majid/ff8104697613ed3ef1ad05867fccbe3c/info@majidonline.com Kami_mz/e46fa9f744f9c59384eaa308ae9012e8/info@farsiprojects.com |
البته باید رو این نکته دقت داشته باشید که نام کاربری و ایمیل نباید حاوی کاراکتر "/" باشند ...
خوب ... حالا فرم رو درست میکنیم : همونطور که میبینید کلا 5 تا فیلد هست که 4 تا شون باید توسط کاربر پر بشه ... 4 فیلد اول به ترتیب به متغیر های email ، userpassword2 ، userpassword ، username پیوند داده شدن، فیلد پنجمن هم برای نشون دادن اینه که برنامه در حال انجام چه کاری هست ، که اون هم به متغیر state پیوند داده شده دقت کنید که Instance name فیلد نام کاربری username_f و برای ایمیل email_f هست ... برای اینکه کاربر نتونه کاراکتر "/" رو توی نام کاربری وارد کنه و ما هم محدودیت بیشتری رو برای وارد کردن ایمیل بذاریم ، باید این کاراکتر هایی که اجازه ورود به فیلدها رو دارن محدود کنیم ، این اسکریپت رو به تنها فریم فایل میدیم :
|
username_f.restrict = "0-9"+"a-z"+"A-Z"+"\-_."; email_f.restrict = "0-9"+"a-z"+"A-Z"+"\-_"+"@."; |
برای اینکه کاربر ایمیل خودشو درست وارد کنه ، این تابع رو هم تعریف میکنیم ... (چون اصل کار ما در اینجا ارتباط با سرور هست ، در باره این کد توضیحی نمیدم) ، این کد رو در فریم اول بذارید :
|
function checkMail(mail:String) { var out:Boolean; if (mail.length<6) { out = false; state = "Email address too short"; } else if (mail.indexOf("@") == -1) { out = false; state = "Missing @"; } else if (mail.indexOf(".") == -1) { out = false; state = "Missing the dot"; } else { state = ""; out = true; } return out; } |
خوب حالا این اسکریپت رو هم به دکمه میدیم : |
on (release) { if ((userpassword == userpassword2) and (username != undefined) and (checkMail(email))) { this.loadVariables("http://www.Your-Server.com/reg.php","POST"); state = "Crating your Profile"; listen = true; } } |
نکته : ما در اینجا از متد POST استفاده میکنیم و اطلاعات رو به آدرس http://www.Your-Server.com/reg.php میفرستیم ، شما باید آدرس فایل خودتون رو اینجا وارد کنید ...
چیز دیگه ای که اینجا اضافه شده قسمتی هست که متغیر listen رو روی true تنظیم میکنه ... ما با این کار میخوایم قسمتی از برنامه رو وادار به این کار بکنیم که ببینه ثبت نام کی تموم میشه و بعد به کاربر اطلاع بدیم ... پس این کد رو هم در ادامه توی فریم اول میذاریم :
|
onEnterFrame = function () { if (listen) { if (created == "ok") { listen = false; state = "Your profile created !"; }else if (created == "problem") { listen = false; state = "ERROR !!!"; } } } |
(این ابتدایی ترین کار ممکنه !)
خوب ... کار ما با فلش تموم شد ... میریم سراغ Php : یه فایل به اسم reg.php درست بکنید ... توی Php برای اینکه به متغیر های ارسالی دسترسی داشته باشید ، باید از آرایه هایی به نام " آرایه های انجمنی " و یا " فراگیر " استفاده کنید ... این آرایه ها به طور کلی به این شکل هستن : |
$HTTP_*_VARS["variable"]; |
شما میتونید به جای * از کلمات POST ویا GET استفاده کنید و اندیس (Index) آرایه تون رو اسم متغیر بدید ، برای مثال : |
$HTTP_POST_VARS["username"]; |
البته میتونید به جای نوشتن اسم بلند این آرایه ، از آرایه های کوتاه تر استفاده کنید : |
$_POST["username"];
|
(توجه کنید که در Php تمام متغیر ها با علامت "$" شروع میشوند)
.... فایل reg.php رو باز میکنیم و اینها رو توش مینویسیم : |
<?php |
شما به همین صورت میتونید متغیر های جدیدی اضافه کنید و استفاده کنید ...
برای برقرار کردن ارتباط بین فلش و MySQL هم میتونید از همین روش استفاده کنید ... اطلاعات رو از فلش بگیرید و query های مورد نیاز خودتون رو با استفاده از اونها درست بکنید ... برای این کار باید در زمینه دیتابیس ها خبره باشید ... برای مثال : |
<?php |
شما به همین ترتیب میتونید انواع query های خودتون رو بسازید و حتی اطلاعات به دست اومده از اون ها رو در قالب خاصی که فلش پشتیبانی میکنه ، توسط دستور echo چاپ کنید ... موفق باشید ...
|