خانه » ادوبی فلش » بارگزاری اطلاعات XML توسط اکشن اسکریپت ۳

بارگزاری اطلاعات XML توسط اکشن اسکریپت ۳

بارگزاری اطلاعات XML توسط اکشن اسکریپت ۳

استفاده از XML یکی از بهترین راه ها برای ساختار بندی اطلاعات به صورت خارجی (External) و به صورت منطقی و قابل درک به صورت ساده ، برای پردازش و به روز رسانی اطلاعات می باشد.

در این مطلب به مباحث زیر پرداخته می شود :

۱ – XML چیست ؟
۲ – نوشتن یک فایل XML برای فلش
۳ – بارگزاری فایل XML در فلش
۴ – پردازش XML  در فلش

XML چیست ؟

XML  یک زبان علامت گذاری قابل بسط (Extensible Markup Language) می باشد، این یک زبان علامت گذاری برای استفاده از ساختار منطقی داده ها که با استفاده از تگ ها (tag) بسیار به HTML شبیه می باشد.
به هر حال، زمانی که از HTML استفاده می کنید ، شما تعدادی تگ تعریف شده برای ایجاد صفحه وب خود دارید، ولی در XML شما تگ های خودتان را می سازید و به دلخواه آنها را در برنامه خود مورد استفاده قرار می دهید.

این موضوع امکان ساخت تگ هایی متناسب با پروژه خودتان که قابل درک برای  هر فردی حتی به صورت مبتدی ، هم باشد را دارید
برای مثال ، شما نیازی به هیچ اطلاعات مقدماتی درباره XML و یا نرم افزاری خاص برای استفاده ندارید . به کد زیر دقت نمایید :

<?xml version="1.0" encoding="utf-8"?>
<GALLERY>
	<IMAGE TITLE="school">image1.jpg</IMAGE>
	<IMAGE TITLE="garden">image2.jpg</IMAGE>
	<IMAGE TITLE="shop">image3.jpg</IMAGE>
</GALLERY>

XML برای شما امکانی را فراهم می کند تا نام  برچسب های (Tag) خود را با قوانین ساده این زبان بسازند.
ویژگی دیگر یک سند XML این می باشد که عناصر آن بر اساس ساختار (والد / فرزند) Parent / child می باشد ، هر تگ می تواند تعدادی فرزند داشته باشد و تگ های فرزند می توانند یک والد داشته باشند.
برای درک بیشتر به تصویر زیر دقت نمایید :

روی محتوای واقعی در یک فایل XML ، هر تگ XML در اکشن اسکریپت به عنوان یک node فراخوانی می شود.
یک node همچنین دارای یک node value  می باشد که بین تگ های node قرار می گیرد ، هر node می تواند به تعداد دلخواه خصوصیت attributes داشته باشد که هر attribute  دارای یک attribute value که درون کوتیشن (“”) مقدار دهی می شود ، است.
تمامی موارد گفته شده عموما می بایست چیزی شبیه به کد زیر باشد :

<ROOT-NODE>
	<CHILD-NODE ATTRIBUTE="value">sub-child-node-or-node-value</CHILD-NODE>
	<CHILD-NODE ATTRIBUTE="value">sub-child-node-or-node-value</CHILD-NODE>
	<CHILD-NODE ATTRIBUTE="value">sub-child-node-or-node-value</CHILD-NODE>
</ROOT-NODE>

کد بالا شامل ۳ اصل مهم می باشد که باعث می شود در نهایت شما کد XML صحیحی داشته باشید :

۱. فایل XML شما می بایست شامل یک تگ اصلی (root level XML tag) باشد ، در مثال بالا این مورد با (<ROOT-NODE></ROOT-NODE>) نمایش داده شده است که خط اول و خط آخر را شامل می شود.
۲. تمامی تگ های تکی می بایست بسته شوند ، این کار می بایست با نوع بسته تگ مربوطه انجام شود ، در مثال بالا (مثلا </CHILD-NODE>) ، و یا می بایست توسط تگ های خود بسته (self-closing) این کار انجام شود ، در این روش در انتهای تگ از یک بک اسلش (/) استفاده می شود ( این مورد در مثال بالا وجود ندارد ، برای مثال : <NODE ATTIRIBUTE=”value” />)

3. اگر شما بخواهید از یک attribute  و یا بیشتر استفاده نمایید ، شما می بایست که مقدار های هر attribute در بین دو کوتیشن (“”) قرار دهید.

نوشتن یک فایل XML  برای Flash

با توجه به این که XML فقط از متن تشکیل شده است شما می توانید از هر ویرایش گر متنی برای ساخت یک فایل XML استفاده نمایید.
Notepad خود را باز نمایید و کد زیر را Copy  و برای ساخت فایل XML درون برنامه Paste  نمایید.
فایل را با نام iflashlord.xml در پوشه ای که می خواهیم فایل فلش خود را ایجاد نماییم ذخیره می کنیم.

<?xml version="1.0" encoding="utf-8"?>
<GALLERY>
	<IMAGE TITLE="school">image1.jpg</IMAGE>
	<IMAGE TITLE="garden">image2.jpg</IMAGE>
	<IMAGE TITLE="shop">image3.jpg</IMAGE>
</GALLERY>


خط اول فایل XML  ما در کد بالا یک پارامتر دلخواه برای تنظیمات مربوطه به ورژن فایل XML و Encoding فایل XML ما می باشد. بهتر هست از این مورد استفاده شود ، حتی اگر در نتیجه ای که در فلش مشاهده می شود تاثیری نداشته باشد.

بارگزاری XML در Flash

کار را با ایجاد پروژه جدید فلش با اکشن اسکریپت ورژن ۳ نمایید. روی تنها فریم موجود در تایم لاین TimeLine راست کلیک کرده و Actions را انتخاب نمایید ( یا کلید F9 را بفشارید)
کاری که می خواهیم در این آموزش در این پنجره انجام دهیم :

۱.     ساخت یک variable برای نگه داشتن یک نمونه  (instance) از کلاس XML

2.     ساخت یک نمونه از کلاس URLLoader برای بارگزاری فایل XML

3.     پاس دادن اطلاعات موجود در فایل XML به نمونه متغیر (variable) آن در زمانی که فایل XML به صورت کامل بارگزاری شد.

اکش اسکریپت ۳ ویژگی های دیگری برای کار با XML توسط کلاس XMLDocument را دارا می باشد .

در ابتدا می بایست یک متغیر(variable)  از نوع XML ایجاد نماییم ، برای این کار به راحتی می توان از var  برای تعریف استفاده نمود :

var myXML:XML;

عملگر کلون ((: برای قفل کردن نوع  متغیر بر روی XML استفاده می شود و این به این معنا می باشد که این متغیر نمی تواند چیزی به جز اطلاعات مربوطه به XML را نگه داری کند. در صورتی که سعی نمایید که داده ای با نوع دیگری به ای متغیر بدهید با خطای در زمان کامپایل compile-time error مواجه می شوید برای مشخص کردن نوع متغیر از قالب زیر استفاده می شود.

var variableIdentified:DataType;

که به ترتیب از سمت چپ شناسه متغیر : نوع داده متغیر می باشد

در مرحله بعد می بایست یک نمونه از کلاس  URLLoader  برای بارگزاری فایل XML ایجاد کنیم ، URLLoader  یک کلاس می باشد که عهده دار بارگزاری همه داده های باینری و متنی می باشد، ابتدا می بایست یک نمونه ساخته شود و در مرحله بعد توسط متد load فایل XML بارگزاری شود ، به کد زیر دقت نمایید :

var myXML:XML;
 var myLoader:URLLoader = new URLLoader();
 myLoader.load(new URLRequest("iflashlord.xml"));

همان طور که در کد بالا مشاهده می کنید ما فایل iflashlord.xml را توسط متد load مربوطه به کلاس URLLoader بارگزاری نمودیم ، کلاس URLLoader برای دریافت URL مربوطه به فایل ما نیاز دارد که داده مربوطه را توسط نمونه ای که از کلاس URLRequest ساخته شده دریافت نماید به همین منظور آدرس فایل مربوطه با استفاده از کلاس URLRequest به متد load  کلاس URLLoader مقدار دهی شده است ، نکته: شما می توانید URLRequest را به صورت جدا در یک متغیر ایجاد نمایید و آن را در مراحل مختلف در کد خود استفاده نمایید می توانید نوع متغییر را هم URLRequest تعیین نمایید.

بعد از این مرحله ما می بایست اطمینان حاصل کنیم که فایل XML ما به صورت کامل بارگزاری شده است تا به مراحل بعدی کار بر روی محتوای فایل بپردازیم برای این کار نیاز به ساخت یک شنونده (Listener) داریم تا فرایند بارگزاری را چک نماید و بعد از تکمیل روند بارگزاری فایل XML تابعی را صدا بزند ، Listener ما می بایست به نمونه ای که از کلاس URLLoader ساخته شده است (در این مثال myLoader) پیوست داده شود.
Listener ما توسط رویدادی که به آن افزوده می شود گیره ای با Listener  تابع processXML ایجاد می نماید تا در زمان تکمل بارگزاری تابعی که با نام processXML تعریف می نماییم اجرا شود.
چگونگی انجام این کار را می توانید در زیر مشاهده نمایید:

var myXML:XML;
var myLoader:URLLoader = new URLLoader();
myLoader.load(new URLRequest("iflashlord.xml"));
myLoader.addEventListener(Event.COMPLETE, processXML);

رویداد های مختلفی برای افرودن به شنونده وجود دارد که می توانند رویداد های مختلفی که برای شی (Object) موردی نظر ما موجود می باشد را تحت پوشش قرار دهد برای اطلاع بیشتر از این رویداد ها می توانید در راهنمای اکشن اسکریپت نرم افزار فلش بخش مربوطه به کلاس URLLoader را چک نمایید.

کد بالا بعد از اتمام بارگزاری فایل XML تابع processXML را فراخوانی می نماید. ما نیاز داریم ، همان طور که در روش مورد استفاده ما در بالا مشخص شد ،تابعی برای این منظور ایجاد کنیم ، ما نیاز داریم در این تابع  محتوای فایل XML را دریافت نماییم و این محتوا را از طریق مسیری که توسط رویداد تابع می باشد دریافت می کنیم :

var myXML:XML;
var myLoader:URLLoader = new URLLoader();
myLoader.load(new URLRequest("iflashlord.xml"));
myLoader.addEventListener(Event.COMPLETE, processXML);
function processXML(e:Event):void
{
	myXML = new XML(e.target.data);
	trace(myXML);
}

اشاره ما در کد بالا توسط e.target به شی (Object) فایل XML ی که بارگزاری شده است می باشد.

شما می توانید تا این مرحله را تست نمایید و محتوای کامل فایل XML را در پنجره خروجی Output فلش مشاهده نمایید.

پردازش فایل  XML

در صورتی که نتیجه خروجی را مشاهده کرده باشید ، محتوای فایل XML را بدون هیچ گونه پردازشی دیده اید، تا ایجا این مثال مانند فایل متنی ساده ای بود که شما می توانستید محتوای آن را توسط کلاس LoadVars و یک فیلد متنی بارگزاری نمایید و نمایش دهید.

قدرت XML به این می باشد که توسط ساختار و پیکربندی که دارد و البته پشتیبانی از E4X امکانات خوبی برای نمایش و جستجوی محتوای فایل XML ایجاد می نماید.

ما برای استفاده از E4X به ازای هر گره (node) در فایل XML مان یک مقدار دریافت می کنیم و یا از یک node خاصی در فایل مقداری را دریافت می کنیم و سپس با استفاده از آن node خاص صفات (attributes) مربوطه به آن را دریافت می کنیم.

در ابتدا ما می خواهیم که همه فرزندان (children) یک گره (node) را دریافت نماییم برای این کار ما می توانیم از عملگر (Operator) ستاره (*) استفاده نماییم.

var myXML:XML;
var myLoader:URLLoader = new URLLoader();
myLoader.load(new URLRequest("iflashlord.xml"));
myLoader.addEventListener(Event.COMPLETE, processXML);
function processXML(e:Event):void
{
	myXML = new XML(e.target.data);
	trace(myXML.*);
}

به جای ستاره استفاده شده در کد بالا را می توان از متد   .children()استفاده نمود که نتیجه ای مشابه خواهد داشت.

ما می توانیم به نوبت فقط گره های خاصی را انتخاب نماییم ، در نمونه کد ما این مورد به خوبی احساس نمی شود زیرا همه فرزندان گره های ما از یک نوع هستند ، اما اگر ما انواع گره های مختلفی داشته باشیم و به دنبال آن باشیم که فقط دسته ای انتخاب شده از آن ها را دریافت نماییم ، می توانیم از نام گره (node name) استفاده نماییم و این دسته را دریافت نماییم. برای مثال ما برای دریافت گره IMAGE به تنهایی ،  از کلمه IMAGE استفاده می کنیم :

var myXML:XML;
var myLoader:URLLoader = new URLLoader();
myLoader.load(new URLRequest("iflashlord.xml"));
myLoader.addEventListener(Event.COMPLETE, processXML);
function processXML(e:Event):void
{
	myXML = new XML(e.target.data);
	trace(myXML.IMAGE);
}

خروجی کد در زمان تست :

<IMAGE TITLE="school">image1.jpg</IMAGE>
<IMAGE TITLE="garden">image2.jpg</IMAGE>
<IMAGE TITLE="shop">image3.jpg</IMAGE>

برای جلو تر روفتن و دریافت محتوای متنی از هر مقدار هر گره ما می توانیم با استفاده دوباره از ستاره (*) این کار را انجام دهیم ، به نمونه دقت کنید :

var myXML:XML;
var myLoader:URLLoader = new URLLoader();
myLoader.load(new URLRequest("iflashlord.xml"));
myLoader.addEventListener(Event.COMPLETE, processXML);
function processXML(e:Event):void
{
	myXML = new XML(e.target.data);
	trace(myXML.IMAGE.*);
}

خروجی کد در زمان تست :
image1.jpgimage2.jpgimage3.jpg

نتجه بالا در واقع کمکی برای استفاده نمی کند ، بنابر این برای دریافت مقدار گره ها به صورت انتخاب شده از عملگر براکت ([]) استفاده می کنیم و با عددی که در مایل براکت ها قرار می دهیم موقعیت فرزند مورد نظرمان در فایل XML را مشخص می کنیم.

var myXML:XML;
var myLoader:URLLoader = new URLLoader();
myLoader.load(new URLRequest("iflashlord.xml"));
myLoader.addEventListener(Event.COMPLETE, processXML);
function processXML(e:Event):void
{
	myXML = new XML(e.target.data);
	trace(myXML.IMAGE[0]);
}

خروجی کد در زمان تست :

image1.jpg

می بایست به یاد داشته باشید که عناصر یک XML List به صورت Zero-relative می باشند (مانند آرایه ها) ، بنابراین اولین آیتم (item) لیست ما در موقعیت ۰ می باشد و نه ۱. و آیتم بعدی در موقعیت ۱ می باشد و بعدی ۲ و به همین صورت تا انتها.

دریافت محتوای یک گره بسیار ساده می باشد. و دریافت مقدار صفات (attributes) نیز خیلی سختر از مورد  قبلی نمی باشد. برای این کار می بایست از علامت (@)  به همراه نام صفت (attribute) استفاده نماییم. برای پردازش می توانیم برای گروهی از گره ها و یا یک گره انتخاب شده استفاده نماییم. برای گروهی از گره ها می توانیم این کد را به کار ببریم :

var myXML:XML;
var myLoader:URLLoader = new URLLoader();
myLoader.load(new URLRequest("iflashlord.xml"));
myLoader.addEventListener(Event.COMPLETE, processXML);
function processXML(e:Event):void
{
	myXML = new XML(e.target.data);
	trace(myXML.IMAGE.@TITLE);
}

خروجی کد در زمان تست :

Schoolgardenshop

این مورد را می توانیم برای گره ی انتخاب شده ای با استفاده از براکت و عدد نیز استفاده نماییم :

var myXML:XML;
var myLoader:URLLoader = new URLLoader();
myLoader.load(new URLRequest("iflashlord.xml"));
myLoader.addEventListener(Event.COMPLETE, processXML);
function processXML(e:Event):void
{
	myXML = new XML(e.target.data);
	trace(myXML.IMAGE[0].@TITLE);
}

خروجی کد در زمان تست :

school

با کنترل کننده هایی که در اکشن اسکریپت ۳ برای XML ایجاد شده است ، به ما این امکان را می دهد که گره ها را با جستجو به دنبال مقدار صفتی خاص فیلتر کنیم و  نتیجه را دریافت نماییم. برای مثال ما مقدار گره IMAGE را که صفت title آن برابر با ‘school’ می باشد را دریافت می نماییم :

var myXML:XML;
var myLoader:URLLoader = new URLLoader();
myLoader.load(new URLRequest("iflashlord.xml"));
myLoader.addEventListener(Event.COMPLETE, processXML);
function processXML(e:Event):void
{
	myXML = new XML(e.target.data);
	trace(myXML.IMAGE.(@TITLE=="school"));
}

خروجی کد در زمان تست :

image1.jpg

یک متد قابل توجه و مورد استفاده متد .length() می باشد ، این متد می تواند برای شمارش تعداد فرزندان یه گره و یا تعداد نوع انتخاب های از فرزندان یک گره استفاده شود. به عنوان مثال ، برای چک کردن این که چه تعداد گره  IMAGE در Gallery ما موجود می باشد می توانیم از متد length() استفاده نماییم :

var myXML:XML;
var myLoader:URLLoader = new URLLoader();
myLoader.load(new URLRequest("iflashlord.xml"));
myLoader.addEventListener(Event.COMPLETE, processXML);
function processXML(e:Event):void
{
	myXML = new XML(e.target.data);
	trace(myXML.IMAGE.length());
}

خروجی کد در زمان تست می بایست عدد ۳ باشد.

ما همچنین به راحتی می توانیم تعداد فرزندان موجود در فایل XML مان را بدون توجه به نوع آنها با استفاده از ستاره (*)  مشخص نماییم:

var myXML:XML;
var myLoader:URLLoader = new URLLoader();
myLoader.load(new URLRequest("iflashlord.xml"));
myLoader.addEventListener(Event.COMPLETE, processXML);
function processXML(e:Event):void
{
	myXML = new XML(e.target.data);
	trace(myXML.*.length());
}

خروجی کد در زمان تست می بایست عدد ۳ باشد.

تا اینجا سعی شد مهم ترین موارد ابتدای برای کار با XML توضیح داده شود ، برای اطلاع کامل و به روز از امکانات و متدهای موجود توصیه می شود حتما به راهنمای فلش مراجعه نمایید.

برای درک بیشتر استفاده از XML به یک تمرین در این مورد می پردازیم.

تمرین

در کد تمرین زیر محتوای فایل XML در پنجره خروجی Output نمایش داده می شود برای این تمرین از یک حلقه (loop) استفاده شده است که توسط آن به محتوای موجود در فایل XML دسترسی پیدا می کنیم و تک تک همه  آنها را به همراه صفت و شماره در خروجی به نمایش می گذاریم ، این مثال کاربردی بوده یک روش معمول برای استفاده در اکثر پروژه ها می باشد.

var myXML:XML;
var myLoader:URLLoader = new URLLoader();
myLoader.load(new URLRequest("iflashlord.xml"));
myLoader.addEventListener(Event.COMPLETE, processXML);
function processXML(e:Event):void
{
	myXML = new XML(e.target.data);
	for (var i:int = 0; i<myXML.*.length(); i++)
	{
		trace("My image number is " + (i+1) + ", it's title is " + myXML.IMAGE[i].@TITLE + " and it's URL is " + myXML.IMAGE[i]);
	}
}

در این مطلب با موارد مهمی که در کار با XML  به صورت ابتدای نیاز هست آشنا شدیم.

Print Friendly
تگ ها :
پیوند مطلب قبلی
پیوند مطلب بعدی

درباره بهروز پولادرگ

متولد : ۵ مرداد سال ۱۳۶۷ ، حرفه : ادوبی فلش ، برنامه نویسی و طراحی وب ، طراحی گرافیک ، مالتی مدیا ، نرم افزار های تحت وب

66 نظر

  1. سلام
    ما که بلد نیستیم ولی معلومه استادانه هست

  2. مطلب جامع و مفید بود و حقیر برخی از نکات را که نمی دانستم از این مطلب یاد گرفتم . چقدر خوب است که افراد سواره ای چون شما با انتشار این مطالب مفید ، به افراد پیاده ای چون ما ، می آموزند .
    امید است که از این مطالب آموزشی از شما بیشتر ببینیم و بیشتر بیاموزیم .
    ممنون

  3. ممنون
    آموزش خوبی بود. فقط اگه pdf واسه دانلودم زیرش بود خوب بود البته من کپی کردم توword

    • با تشکر از نظر شما دوست عزیز
      طبق سیاست کاری بنده ، ارائه مطلب تنها به صورت و قالبی که در وبسایت وجود دارد ، امکان پذیر می باشد
      البته همان طور که می دانید به این روش کدها به صورت و حالت بهتری برای کاربران در دسترس می باشد
      و امکان کپی آن درون برنامه های مانند ورد به راحتی وجود دارد ، تنها موردی که لازم به ذکر می باشد برای انتشار این مطالب در وب و یا قالب های دیگر ، لطفا نام و لینک منبع را قرار دهید.
      موفق و پیروز باشید

  4. سلام مطلب خیلی خوبی بود.خیلی لازم داشتم.هر وقت مطلبی در مورد فلش میخام اینجا یه چیزی بیدا میکنم بلاخره (: واقعا ممنون …….

  5. ضمن تشکر بابت آموزش خوبی که وقت گذاشتید و تهیه کردید.
    بنده با تگ “فارسی نویسی فلش و xml ” وارد این صفحه شدم اما مطلبی در رابطه با فارسی نویسی فلش و xml در این مقاله نبود.
    میخواهم بدانم که آیا امکان تغذیه فلش توسط یک xml فارسی هست یا خیر.
    تشکر

    • سلام
      در واقع فرقی بین کار با xml به صورت فارسی یا انگلیسی نیست ، فقط برای متون فارسی اصولا می بایست ذخیره سازی بر اساس UTF8 باشد
      بحث نمایش اطلاعات هست که برای متون به هر زبانی نه فقط فارسی و انگلیسی کافیست از TLF در فلش استفاده کنید
      در ضمن این تک ها با توجه به جستجوی کاربران به مطلب های مرتبط توسط سیستم به صورت خودکار ایجاد شده اند
      موفق و پیروز باشید

  6. با سلام و تشکر فراوان از مطالب مفیدتون
    یه سوال در مورد کار با ایکس ام ال در اکشن ۲ داشتم!
    آیا میشه پس از بارگذاری فایل ایکس ام ال و تغییر اطلاعات آن، محتویات جدید را در فایل اصلی که باز نموده ایم یا در یک فایل جدید ذخیره نماییم ؟؟؟

    • سلام
      بله می بایست محتوای جدید را در قالب یک string مثلا به رابط سمت سرور خود ارسال کنید و توسط برنامه نویسی سمت سرور آن را در قالب یک فایل ذخیره کنید
      اگر به صورت مالتی مدیا و تحت ویندوز (خروجی فایل اصلی شما به صورت اجرایی (exe) ) نیاز دارید می توانید توسط برنامه هایی مثل MDM Zinc و یا MProjector رشته متنی را در قالب یک فایل ذخیره کنید.
      موفق و پیروز باشید

      • سلام مجدد
        با تشکر از توجه و پاسخ گویی شما…
        آیا توسط خود فلش این کار امکان پذیر نیست؟ یعنی فلش توانایی ایجاد یا درج اطلاعات در فایل را بصورت مستقیم ندارد؟ و حتما باید از یک سرور یا برنامه ی رابط کمک بگیرد؟

  7. فلش به صورت مستقیم و بدون دخالت کاربر این امکان را به شما نمی دهد مگر در حالتی که یک برنامه به صورت AIR ایجاد کرده باشید که در وب کاربرد ندارد و برای نصب نیاز به نصب کننده دارد.
    تنها امکانی که فلش به شما در این موارد می دهد با استفاده از FileReferenceمی باشد که طی یک پیغام از کاربر محل ذخیره سازی فایل مورد نظر شما را درخواست می کند و بعد از انتخاب مسیر و تایید مثلا فایل شما در محل مربوطه ذخیره می شود.
    یک کد ساده نمونه :

     var file:FileReference = new FileReference();
     var ba:ByteArray =bitmapDataSampleBinary;
                        file.save(ba,'test.jpg');
    

    در دیگر حالات می بایست از همان روش هایی که در مورد قبلی اشاره کردم استفاده کنید.

    موفق و پیروز باشید

  8. با سلام و خسته نباشید
    من یه فایل پخش کننده فلش دارم که play list اون یه فایل xml هست زمانی میخوام عکسهای موجود در فایل فلش رو از چپ به راست بیارم این کار رو انجام نمیده و یا فونت فارسی رو برعکس مینوییسه مثلا تست یک رو مینویسه یک تست

    <![CDATA[DRU T. - The House Of Blue Guitar]]>
    <![CDATA[تست یک]]>
    <![CDATA[RUN D. - Re-Inventing Soundwaves]]>
    
    • سلام
      دو راه دارید ، راه اول این که متن درون فایل xml را به صورت یونی کد وارد کنید و یا از convertor ی مثل فارسی استایل استفاده کنید.
      را دوم و بهتر استفاده از TLF به جای TextFilde هست که امکان راست به چپ نویسی و متون فارسی را به صورت کامل به شما می دهد ، برای این مورد می بایست فلش پلیر را روی ۱۰ یا بالاتر قرار دهید ، البته برای نسخه های قبل تر هم نمونه هایی بود که کامل نبودند. در ضمن بهتر هست که از آخرین نسخه نرم افزار ادوبی فلش استفاده کنید که این امکان را به راحتی در اختیار شما قرار دهد.

      موفق و پیروز باشید

  9. با تشکر از شما امیدوارم همیشه موفق باشید

  10. سلام خسته نباشید مرسی از این آموزش خوب وجامع …
    بهروز جان من میخوام تو XML فارسی بنویسم و توی فلش نمایش بده ولی متاسفانه نتونستم اگه امکانش هست و شما بلدی به من یاد بده … ممنونم :-*

    • سلام
      تنها کاری که شما باید انجام بدید این هست که باید در فلش به جای TextFild قدیمی از TLF استفاده کنید و یک فونت فارسی رو Embed کنید و در بخش پانل Properties تنظیمات فارسی و راست به چپ را فعال نمایید
      در ضمن فایل XML خود را به صورت UTF-8 ذخیره نمایید
      همین ، بقیه کارها هم طبق آموزش انجام دهید
      موفق و پیروز باشید

  11. سلام. من از این که مطالب رو انقدر جامع و کامل روی سایتتون گذاشتید تشکر می کنم. خیلی خوب مراحل کار رو توضیح داده بودید. واقعا ممنونم.
    من سوالی داشتم. من در حال طراحی یک سایت با asp.net هستم. داخل اون با استفاده از تگ object فایل فلشی قرار دادم. این فایل فلش شامل چند تا دکمه هستش و من می خوام وقتی سایت رو بالا میارم و روی هر دکمه ی این فلش به صورت جداگانه کلیک می کنم یک پارامتری رو از فلش به برنامه asp.net ارسال کنه که من با استفاده از این پارامتر بتونم اطلاعات خاصی رو از پایگاه بخونم و به کاربر نشون بدم.احتمالا باید از javascript هم استفاده کرد. ولی من اصلا نه بلدم این پارامتر رو از فلش به asp.net بفرستم و نه بلدم اطلاعات ارسال شده از فلش رو توسطasp و یا جاوااسکریپت بخونم. اگه میشه شما کمکم کنید.
    شما اگه ممکنه به من کمک کنید. یا همین جا اگه امکانش هست برام توضیح بدید یا میل بزنید من شمارمو میدم و برام تلفنی توضیح بدید یا کلا توضیحاتتون رو برام میل بزنید. ممنون از شما

    • سلام
      در مورد این کار تنها کافیست که توابع مربوطه به کاری که می خواهید انجام دهید را در جاوا اسکریپت ایجاد کنید به طوری که مثلا وقتی تابع test در جاوا اسکریپت صفحه فراخوانی شود کار مورد نظر شما انجام شود
      حال در بخش فلش مثلا برای اکشن ۲ از این فرمان استفاده کنید

      getURL("javascript:test();");

      این موضوع را برای اکشن اسکریپت ۳ در بخش مقالات سایت کامل توضیح داده ام

      در ضمن اگر شما نظرات تیک مربوطه را بزنید جواب برای شما ایمیل می شود
      موفق و پیروز باشید

  12. واقعا ممنون
    خیلی دوست داشتم درباره ی xml بدونم

  13. مطالبتون عالیه و مثال ها ساده و کاربردی.
    میشه در مورد نحوه ذخیره و ارسال یک داده یا متغیر از فلش به xml هم بگین؟

    • سلام
      ارسال داده به xml امکان پذیر نیست ولی امکان ارسال داده مثلا به یک فایل php هست که در جواب درخواست این فایل پی اچ پی داده ها xml را به ما بدهد
      در این مورد در آینده مقالاتی جامع تری خواهم نوشت
      ولی می توانید این موضوع را در موتورهای جستجو پیگیری کنید
      موفق و پیروز باشید

  14. با سلام
    یک سوال داشتم
    من با برنامه mdm zinc 4 فایل فلش خودم رو کامپایل کردم و همچنین آدرس های xml ها رو نیز با توجه به mdm آدرس دهی کردم .
    اما اگر فایل اصلی رو خودم کلیک کنم بدون مشکل فراخونی می شه . اما اگر توسط یک فایل دیگه فراخوانی بشه , فایل های درون xml نمیاد و اجرا نمیشه . فکر کنید من پروژه رو در یک پوشه قرار دادم و ۲ پوشه بالاتر از طریق یک فایل اون برنامه لینک شده . اما اگر از این طریق عمل بشه فایل xml رو نمیاره . حالا می خوام بدونم در صورت استفاده از mdm آیا باید در مسیر خود فایل XML تغییر ایجاد کرد و یا به نظر شما مشکل از کجاست ؟؟

    توضیح اینکه . فایل خروجی که mdm داده که .exe هست وقتی بنده روش کلیک کنم درست اجرا میشه . اما اگر توسط برنامه ای که درون اون پوشه نباشه و از جای دیگه فایل .exe بنده رو اجرا کنه فایل .exe اجرا میشه اما محتویات XML باهاش اجرا نمیشه و در واقع اصلا اون فایل ها رو انگار پیدا نکرده . حالا اگر من بیام و درون اون پوشه که فایلی که فایل .exe من رو فراخوانی می کنه اطلاعات مربوط به فایل XML و محتویات اون از جمله موزیک و عکس رو بذارم بدون مشکل اجرا میشه . پس مشکل از آدرس دهی هست . حالا از شما در این مورد کمک می خوام ؟ مرسی

    • سلام
      باید اول این متغیر را تعیین کنید و بعد به اول همه آدرس هایتان اضافه کنید تا در فلش و MDM Zinc مشکلتان رفع شود

       var myAppPath:String = (mdm.Application.path != undefined) ? mdm.Application.path : "";
      

      موفق و پیروز باشید

  15. سلام دستتون درد نکنه مطالب خوب ومفید بود از شما ممنونم

  16. امیر نعمتی

    سلام آقا بهروز خسته نباشین.
    این سوال من شاید تکراری باشه باید ببخشید.
    من میخوام یک برنامه exe درست کنم که با فلش طراحی کردم و یک فایل ایکس ام ال دارم که از داده های اون استفاده میشه.اگه من بخوام به کاربرم اجازه بدم که یک عبارت مثلا ” مدرسه ابتدایی” که در فایل ایکس ام ال هست رو تو خود برنامه اجرایی به به “مدرسه راهنمایی” تبدیل کنه به نظرتون چطوری اینکارو انجام بدم؟گفتین تو طراحی فایل فلش که نمیشه!

    • سلام
      شما می توانید فایل ها دیگر مثل فایل xml خود را توسط فلشی که exe شده باشد ویرایش کنید
      البته برای ایجاد امکان این ویرایش کردن می بایست از برنامه های کاربردی مثل MDM Zinc و یا mProjector و… استفاده کنید هر یک از این برنامه ها طبق راهنمایی که دارند دسترسی هایی را برای شما توسط یک سری کد خاص خودشون ، به شما می دهند که می بایست در فایل فلش خود قرار دهید و توسط این برنامه ها فایل swf خود را به exe تبدیل کنید
      موفق و پیروز باشید

  17. امیر نعمتی

    من با swf studio امتحان کردم نتیجه مطلوب نگرفتم با این کد:
    ssCore.FileSys.writeToFileUTF8({path:”startdir://file.xml”, data:”Hello”});
    چونکه نمیشه مشخص کرد کدوم خط و کجاش . حالا با اون نرم افزار ها هم امتحان می کنم. بازم از پاسخ گویی شما بسیار ممنونم.

  18. سلام وقت بخیر.
    من فلشی درست کردم که اطلاعات آماریرو به صورت فارسی از xml میخونه ولی در نشان دادن حرف ی مشکل داره.لطفا راهنماییم کنید.ممنون از محبتتون.

  19. با سلام خدمت شما
    من یک سوال متفرقه داشتم
    بنده برای سایتم یک درگاه از بانک پاسارگاد گرفتم ماژول آن را دانلود و نصب کرده ام در راهنمای آن گفته بود پرایویت کی را در یک فایل به نام certificate.xml ذخیره کنم می خواستم ببینم چطور باید این فایل را بسازم؟

    • سلام
      می توانید با تماس با بخش پشتیبانی بانک مربوطه اطلاعات کاملی در این زمینه دریافت کنید
      در ضمن نمونه فایل مربوطه را نیز برای شما ارسال می کنند تا شما فقط کد مورد نظر را در آن قرار دهید
      موفق و پیروز باشید

  20. با سلام و تشکر از مطالب خوبتون یک سؤال در مورد ساخت یک گالری عکس با فلش دارم .
    تعداد عکس های گالری زیاد هست و من می خوام هر زمان که عکس های فولدر رو delete می کنم و عکس جدید میریزم خود برنامه عکس های جدید رو لود کنه و نیازی به تغییر نام عکس در فایل xml نباشه. آیا این امکان در فلش وجود داره یا نه ؟
    با تشکر

  21. سلام
    من فایل xml رو برای وبلاگم از سایت http://www.xml-sitemaps.com/‎ گرفتم
    میشه بگین باید چیکارش کنم ؟

  22. برای ساخت این گالری به جز نرم افزار فلش از چه نرم افزار دیگه ای می توان استفاده کرد که قابلیت تغییر عکس توسط کاربر و اسلاید شو رو داشته باشه. ؟

    • سلام نرم افزار های زیادی برای ساخت گالری وجود دارد که می توانید از سایت های نرم افزار دانلود نمایید
      با ویرایش فایل xml همراه خروجی این برنامه ها می توانید محتوای آن را به صورت دستی تغییر دهید
      موفق و پیروز باشید

  23. سلام، من یک بسته نصبی اسلاید شو رو ادیت کردم و پس از نصب در جوملا میگه فایل xml نداره ، آیا می تونم درست کنم ؟یا نه؟ چه باید کرد؟
    مرسی

    • سلام
      آدرس دهی مطلق انجام دهید به این معنا که در جایی که به فایل xml برای لود آدرس دهی می کنید آدرس کامل سایت و محل قرار گیری فایل و نام آن را وارد کنید و فقط نام فایل را وارد نکنید
      یا متد base مربوطه به تگ object را به محل پوشه قرار گیری فایل xml آدرس دهی نماید
      موفق و پیروز باشید

  24. سلام خسته نباشین
    از مطلب خوبتون ممنون
    فقط من دوتا سوال داشتم:
    موقعه انجام این تمرین از کدم یعنی URLLoader ایراد میگرفت این پیغام رو میداد:
    “The class or interface ‘URLLoader’ could not be loaded.”

    و یه سوال دیگه گفتین برای استفاده از متن فارسی تو xml که بتونه تو فلش نشون بده گفتین از TLF استفاده بشه، TLF کجاست؟ من از فلش CS3 استفاده میکنم تو قسمت کامپوننت ها فقط text area داشت.

    • سلام برای مورد اول می بایست کلاس URLLoder را در ابتدای کد وارد کنید

      import flash.net.URLLoader;
      

      سلام tlf فقط در فلش cs5 به بعد به صورت پیش فرض وجود دارد و وقتی که فیلد متنی را انتخاب می کنید در پانل خصوصیات قابل انتخاب هست
      موفق و پیروز باشید

  25. با سلام من همه کارهای که شما گفتید رو انجام دادم و قبلا هم انجام داده بودم , مشکل من اینه که آدرس XML رو می فهمه , اما فایلها رو باز نمی کنه , یعنی فایل flv رو اجرا نمی کنه , مگر اینکه فایل رو داخل صفحه اول و یا همان root بریزم . می خواستم بدونم آیا به غیر از مسیر دهی داخل فلش که از همون متغییر بالا که گفتید استفاده می شود .
    آیا خود فایل xml رو هم باید تغییر بدهیم
    منظورم اطلاعات داخل خود xml هست .
    با تشکر فراوان و کمک های بی دریغ شما دوست گرامی .

  26. سلام خسته نباشید.
    ببخشید اگر غیره حرفه ای سوال میکنم چون من زیاد وارد نیستم.
    من یک فایل فلش دارم که اطلاعات منوهاش از طریق XML نمایش داده میشه، می خوام یکی از منوهام یک فایل EXE باز کنه، چه دستوری باید در XML براش وارد کنم.
    لطف میکنید راهنماییم کنید !!!

    • سلام
      برای این کار می بایست از برنامه های کمکی استفاده کنید ، مقل MDM Zinc و یا mProjector , … و فایل فلش را توسط آن به exe تبدیل کنید و از دستور مربوطه در آن استفاده کنید تا بتوانید فایل Exe را باز کنید ، توجه کنید فایل swf و یا در صفحه وب نمی تواند یک فایل exe را اجرا کند و تنها در صورتی این امکان وجود دارد که به exe تبدیل شده باشد
      شما می توانید با دستور ساده fscommand و exec فایل exe که در پوشه fscommand قرار دارد را اجرا کند
      اگر در مورد این موارد جستجو کنید مطالب زیادی در وب وجود دارد
      موفق و پیروز باشید

  27. سلام و خسته نباشید
    میخواستم بدونم کدی تو فلش هس که امکان سرچ هم فراهم کنه
    مثلا یک دفترچه تلفن با فلش درس کرد و توش قابلیت سرچ باشه و این که چه طوری پایگاه داده رو بهش ارتباط میدین که ۲۰۰۰اطلاعات توش باشه
    ممنون

    • سلام
      برای این موارد با این حجم داده بهتر هست که یا از AIR استفاده کنید و SQLite که می توانید توسط کوئری های sql سرچ را انجام دهید
      یا این کار را به سمت سرور بسپارید توسط یک زبان رابط مثل php یا asp.net
      در روش ساده می بایست فایل را توسط حلقه پیمایش کنید که پرفورمنس مناسبی نخواهد داشت
      موفق و پیروز باشید

  28. سلام
    خسه نباشید بابت کمک های بیشمارتون
    سوالی داشتم در رابطه با اینکه چطور میشه فایل خروجی فلش به صورت اتوران باشه تا به راحتی به فایل fla آن بقیه دسترسی نداشته باشن من خودم کد اتوران رو در یک notpad نوشتم و داخل سی دی ریختم فایلم به صورت اتوران اجرا میشه ولی نمونه های بسیاری دیدم که خود فایل فلش هم اتوران هس و نمیشه با نرم افزار Decompiler بازش کرد
    و اینکه آیا واقعا این گونه فایل ها رو به هیچ وجه نمیشه با نرم افزاری به fla تبدیل کرد؟
    تشکر

    • سلام
      به هر حال برای هر قفلی کلیدی هست ، می توان کار را سخت کرد ولی هیچ وقت نمی توان امنیت ۱۰۰ درصد را تضمین نمود
      در مورد نمونه شما یا از برنامه های کاربردی مثل mProjector , MDM Zic , swf kit و … استفاده کنید و یا در بخش publish setting فلش تیک مربوطه به projector را بزنید با فشرد کلید F12 و یا دکمه publish خروجی exe هم داشته باشید
      برنامه های ذکر شده فایل را با امنیت بیشتری به exe تبدیل می کنند و بازگشت آنها سخت تر هست
      موفق و پیروز باشید

  29. سلام آقای پولادگر
    من با Flash CS6 یه مووی کلیپ روی صفحه ساختم و اسمش رو
    mc گذاشتم حالا چطور میتونم با یه فایل xml خارجی
    تعدادی ویژگی به mc مورد نظر اضافه کنم ؟؟ ( مثلا mc رو حرکت بدم یا براش فیلتر بزارم)
    البته من مطلب مربوط به xml رو که روی سایت قرار داده بودید رو خوندم ولی نتونستم چنین کاری بکنم
    ممنون میشم اگه جوابتون رو برام ارسال کنید
    خیلی ممنون و سپاسگذار که مطالب خوبی روی سایت قرار دادید

    • سلام
      اگر طبق همین آموزش عمل کنید بعد از این که داده ها را به صورت متنی دریافت کردید حال مثلا شرط می گزارید اگر داده x شما خالی نبود مقدار آن را به صورت یک int به x شی شما اعمال کند
      و…
      اگر داده ها را به درستی دریافت کنید مشکلی وجود ندارد

      توجه کنید می بایست همه دستورات در بخشی باشد که داده کاملا بارگزاری و دریافت شده است در آموزش نمونه در تابع processXML شما به همه داده ها دسترسی دارید و می توانید آنها را طبق روال گفته شده استخراج و مورد استفاده قرار دهید
      موفق و پیروز باشید

  30. سلام
    چطوری میشه با فلش به پایگاه داده اکسل وصل شد؟

    • سلام
      اگر فایل با فرمت نسخه های قبل از ۲۰۰۷ ذخیره شود
      اگر آن را توسط notpad باز کنید می بینید که توسط فاصله TAB داده ها از هم جدا می شوند و هر مورد پس از پایان به خط بعد رفته است
      باید مثل فایل متنی با آن برخورد کنید و داده ها را خط به خط دریافت کنید و توسط داده های Tab بین آنها از هم جدا کنید و استفاده کنید
      موفق و پیروز باشید

  31. سلام آقای پولادرگ
    یه سوالی داشتم
    من دارم یه سایتی با فلش میسازم
    من یه دونه قسمت میخوام بهش اضافه کنم برای ارتباط دیگران با من
    ینی میخوام یه دونه contact form بسازم که وقتی فرم پر شد و دکمه send رو زدم این متن و این فرم به E-mail من ارسال بشه (یه چیزی تو مایه های همو چیزی که شما برای سایت خودتون http://www.iflashlord.com ساختید)
    حالا دو تا سوال دارم
    ۱.باید من از زبان php واسه این امر استفاده کنم یا xml؟ (یا شاید هم چیز دیگه ای)
    ۲. بعد اونوقت چطور میشه چنین فرمی رو ساخت که با زدن روی دکمه send اطلاعات به ایمیل من برسن

    (من زبان html و xml هم بلدم)

    • سلام و عرض ادب

      ۱ – php یا زبان دیگر سمت سرور با توجه به نوع سرور مورد استفاده
      ۲ – در واقع شما توسط متد POST یا GET اطلاعات را از فلش به PHP ارسال می کنید در آنها هم توسط همین متد دریافت می کنید حال این بخش که مربوطه به PHP هست طبق الگو PHP هست و فرقی ندارد. برای ارسال هم با توجه به نسخه مختلف اکشن اسکریپت باید از روش های مختلفی استفاده کنید، در بخش مقالات در مطالبی به این مورد اشاره شده است.

      موفق و پیروز باشید

  32. سلام آقای پولادرگ
    ممنون از مطالب مفیدتون
    آقای پولادرگ بنده چند تا سوال داشتم
    من میخواستم توی یکی از فایلهای فلشم که طراحی شده برای یک سایت هست میخوام یه دونه فرم بسازم برای contact (ارتباط) که شامل نام . ایمیل و متنمون هست که وقتی روی دکمه send کلیک می کنی این فرم به ایمیل ما یا یه جای دیگه ارسال بشه
    حالا میخواستم ببینم چطور باید این کارو انجام بدم؟ (با زبان php یا xml یا زبان های دیگر)
    حالا اگه میشه ساخت چطور باید از این زبون ها استفاده کنم؟
    (من زبان xml بلدم)

    • سلام و عرض ادب

      برای ارسال ایمیل بهتر هست که از یک زبان برنامه نویسی سمت سرور مثل php استفاده بشه، اطلاعات به آن فایل POST بشه و ارسال ایمیل توسط تابع ساده mail انجام بشه
      البته وقتی اطلاعات را به فایل php ارسال بشه شما امکان ثبت آن در دیتابیس و… را نیز دارید

      موفق و پیروز باشید

ارسال جواب

آدرس رایانامه شما منتشر نخواهد شد.فیلد های اجباری علامت گزاری شده اند *

*

رفتن به بالای صفحه