انجمن‌های فارس وب

نسخه کامل: ذخیره و انتقال اطلاعات در فلش به وسیله XML
شما در حال بازدید از بایگانی ارسال های انجمن هستید این نسخه کامل نیست : برای مشاهده نسخه کامل اینجا کلیک کنید
نام مقاله : ذخیره و انتقال اطلاعات در فلش به وسیله XML
سطح : پیشرفته
منبع : [ جهت مشاهده لينك عضو شويد ! ]
---------------------------------------------------------------
اگر تا بحال با Flash کار کرده باشید و بخواهید استفاده بهتری از آن ببرید به پایگاه داده و چگونگی ذخیره اطلاعات برخورده اید و یا انتقال اون ها .... و اگر تا کنون برنخورده اید با گسترش روز بروز استفاده از آن و افزایش قابیلت های آن در آینده ای نه چندان دور مجبورید وارد این مبحث نیز شوید .

البته می توانید مقادیر پارامترها را در فلش به صفحات aspx و یا PHP یا .... خود ارسال نمایید
خوب این هم روشی است ولی خیلی اصولی نیست چون در این صورت شما نه تنها می بایست Flash بلد باشید بلکه کار با یک زبان دیگر برنامه نویسی و پایگاه داده آن را نیز باید یاد بگیرید و نکته مهم دیگری که وجود دارد کاهش امنیت است چرا که شما پارامتر ها را در Header صفحه قرار می دهید پس هم اطلاعاتتان قابل استفاده شده و هم می توان اطلاعات نامعتبری برایتان ارسال نمود پس هزینه و زمانی نیز برای امن کردن این ارتباط لازم دارید . اوا تازه این جدا از اینه که سایت شما می بایست پشتیبانی اون صفحات رو نیز داشته باشه اینم یعنی هزینه اضافه ممم

(آموزش ارسال پارامتر به صفحات aspx در [ جهت مشاهده لينك عضو شويد ! ] قرار دارد.)

پس بهتره کار با XML رو از خود Flash یاد بگیریم که حداقل در موارد جزیی بتونیم از خودش استفاده کنیم چون برای اجرا و نمایش فایل های فلش کافی است در سیستم کاربر نهاییتان Flash Player نصب باشد و هزینه ی اضافی به شما تحمیل نمی کند.
ممکن است شما هرگز مجبور به ایجاد فایل های XML در برنامه های فلش نشید ولی امکان اینکه بخوان از اطلاعات یک فایل XML استفاده نمایید زیاد است.
برای ذخیره اطلاعات و یا انتقال اون ها به شیوه راحت تر می تونین از XML (eXtensible Markup Language ) استفاده کنید

در ابتدا یه نگاه کوتاهی به XML می ندازیم بعد با شی XML در فلش آشنا می شیم و دستورات اونا می شناسیم و نهایتا یک نمونه از استفاده از XML رو در فلش بررسی می کنیم.

XML یک زبان نشانه گذاری free format است که در پایگاه داده کاربرد دارد و از نظر استفاده از tag ها مشابه HTML است ولی با این تفاوت که تگ ها می توانند توسط خود شما تعریف و انتخاب شوند به عنوان نمونه تگ زیر برای XML یک تگ معتبر است :

<user>
<name> Judy </name>
<family>Abbott </family>
</user>


که در این تگ کاربری با نام و نام خانوادگی مشخص تعریف شده است . به هر عنصر مثل user ,name , family در مثال بالا یک گره یا node اطلاق می شود .


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

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

myXML = new XML();


تجزیه متن به XML :

فرمان parseXML یک رشته متنی را می گیرد و آن را به داده های XML تبدیل می نماید :

myXML.parseXML ("<user><name>Judy</name><family>Abbott</family></user>");


می توانید حتی در موقع تعریف نیز رشته ورودی به آن بدهید :

myXML = new XML( "<user><name>Judy</name><family>Abbott</family></user>");


با دستور trace می توانید وضعیت تجزیه رشته را بررسی کنید یعنی کد زیر :

trace (myXML.status);


اگر خروجی به شما 0 را داد یعنی رشته شما به درستی تجزیه شده ولی اگر 9- را داد یعنی برچسب انتهایی یکی از tag های شما ندارد و اگر 10- بود بعنی برچسب ابتدایی ندارد.


گرفتن داده از XML :
برای دریافت اطلاعات از firstChild می توانید استفاده نمایید ، به صورت زیر :

trace (myXML.firstChild.firstChild);


خروجی به شکل زیر خواهد بود :

<user><name>Judy</name><family>Abbott</family></user>


و با

trace (myXML.firstChild.firstChild);


خروجی زیر را خواهید داشت :

<name>Judy</name>


می توانید به جای firstChild از دستور childNodes استفاده نمایید.
کد زیر را نیز امتحان نمایید :

trace (myXML.childNodes[0].childNodes[0].childNodes[0].nodeValue);

حال به خروجی مورد نظر یعنی داده رسیدید تائید

خوب تا به اینجا توانستیم Node ها را تنها ایجاد و نمایش دهیم ولی ما می خواهیم استفاده بهینه تری از XML داشته باشیم یعنی اطلاعات را از فایل xml بخوانیم نه از رشته ورودی

در ادامه و پست بعدی بحث را کامل می نمایم. واه

خسته نباشید


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

در ادامه با ایجاد XML و بارگذاری یک فایل خارجی XML و استفاده از داده های آن آشنا می شویم

ایجاد یک XML :
برای ایجاد یک XML می بایست در ابتدا یک عنصر را بسازیم و سپس در گام بعدی آن گره را اضافه نماییم . برای گام اول از دستورهای createElement و createTextNode استفاده می کنیم و برای گام دوم از دستور appandChild استفاده می کنیم .

ایجاد گره های مثال بالا :

myXML = new XML();
myElement = myXML.createElement("user");
myXML.appendChild(myElement);
newElement = myXML.createElement("name");
myXML.childNodes[0].appendChild(newElement);
newText = myXML.createTextNode("Judy");
myXML.childNodes[0].childNodes[0].appendChild(newText);
newElement = myXML.createElement("family");
myXML.childNodes[0].appendChild(newElement);
newText = myXML.createTextNode("Abbott");
myXML.childNodes[0].childNodes[1].appendChild(newText);
trace(myXML.firstChild);


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

توجه نمایید که داده ها نیز به عنوان گره های متنی می باشند.

بعد از اجرای فایل (با توجه به trace موجود) خروجی به شکل زیر می باشد :

<user><name>Judy</name><family>Abbott</family></user>


نکته :
اگر بخواهیم مقدار یک گره متنی را تغییر دهیم از nodeValue استفاده می کنیم ، کد زیر را به کدتان اضافه نمایید و آن را اجرا کنید :

myXML.childNodes[0].childNodes[1].childNodes[0].nodeValue = "Change";
trace(myXML.firstChild);


خروجی :

<user><name>Judy</name><family>Change</family></user>



اضافه کردن صفت :
می توانیم برای گره های متنی صفت نیز تعریف نماییم ، این کار به صورت زیر می باشد :

myXML.childNodes[0].childNodes[0].attributes["type"] = "Fars web User";

و اگر آن را trace نماییم خروجی به صورت زیر می شود :

<user><name type="Fars web User">Judy</name><family>Abbott</family></user>

با استفاده از کد بالا در صورتی که این صفت موجود باشد مقدار آن را بازنویسی می کند و اگر این صفت موجود نباشد آن را ایجاد می کند و مقدار Fars web User را به آن می دهد.


برای استفاده از مقدار صفت نیز می توانید از کد زیر بهره ببرید :

myXML.childNodes[0].childNodes[0].attributes["type"]


در اضافه :
اگر چندین صفت داشته باشیم می توانیم با حلقه for آن ها را استفاده نماییم متاسفانه صفت ها به عنوان آرایه یا ... شناخته نمی شوند تا شما بتوانید از طول آن ها استفاده نمایید .

myXML.childNodes[0].childNodes[0].attributes["type"] = "Fars web User";
myXML.childNodes[0].childNodes[0].attributes["site"] = "http://farsweb.ir";
myXML.childNodes[0].childNodes[0].attributes["post"] = "None";
for (attr in myXML.childNodes[0].childNodes[0].attributes) {
    trace(attr+":"+myXML.childNodes[0].childNodes[0].attributes[attr]);
}


در کد بالا من ابتدا چندین صفت ایجاد کرده ام و سپس آن ها را با استفاده از trace نمایش داده ام .

چند تابع کاربردی دیگر از XML :

trace (myXML.childNodes[0].childNodes.length);


بدست آوردن تعداد گره های داخل یک گره از طریق lenght که مربوط به مشخصه childNodes است .

trace (myXML.childNodes[0].childNodes[0].nodeName);

بدست آوردن نام گره

trace (myXML.childNodes[0].childNodes[0].nodeValue

بدست آوردن مقدار گره

trace (myXML.childNodes[0].childNodes[0].nodeType;

بدست آوردن نوع گره (اگر 1 باشد یک عنصر است و اگر 3 باشد گره متنی است)


استفاده از XML خارجی :
براای استفاده از یک فایل XML خارجی ابتدا باید شی از نوع XML تعریف نمایید و سپس آن را لود کرده و از آن به وسیله تابع های بالا استفاده نمایید :

data = new XML();
data.ignoreWhite = true;
data.load("XMLFileAddress");
data.onLoad = function(success) {
    if (success) {
        if (data.status == 0) {
            dealWithXML(thisUser);
        } else {
            trace("Parser Error : "+data.status);
        }
    } else {
        trace("Load Error");
    }
};



توضیح :
در کد بالا از مشخصه ignoreWhite استفاده کردیم ، با true کردن این متغییر فلش فضاهای خالی مانند space,Enter, tab , .... را نادیده می گیرد حتما این مشخصه را true نمایید چون اکثرا از برای خوانا شدن فایل ها از این فضاهای خالی استفاده می شود.


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



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

سلام . امیدوارم حالتون خوب باشه .
شما که خوندن از xml رو توضیح دادید نوشتن رو هم توضیح میدادی منظورم ذخیره کردن اطلاعات تو xml از طریق فلش هست.
سلام
نمی دونم چرا اینقدر تو برنامه نویسی بی استعدادم !
به هر حال موضوع جالب است و زحمت زیادی هم کشیده اید
موفق باشید
خدانگهدار
سلام .
واقعا مطلب خوب و کاربردی رو عنوان کردی ولی یه مشکلی داره موقعی که از یه فایل xml که محتویات گره هاش فارسیه می خونی و توی یه داینامیک تکست میریزی بر عکس نوشته می شه و کلا مشکل داره . به نظرتون چکار کنم ؟
lvla3u0d عزیز
متاسفانه فلش همواره با فارسی مشکل دارد ، نسخه ی 9 فلش طبق گفته ها فارسی را پشتیبانی می کند ولی باز هم ممکن است فایل های XML را به درستی نخواند .

lvla3u0d نوشته است:
موقعی که از یه فایل xml که محتویات گره هاش فارسیه می خونی و توی یه داینامیک تکست میریزی بر عکس نوشته می شه و کلا مشکل داره . به نظرتون چکار کنم ؟


جهت استفاده بهينه كلمات فارسي در فلش ، سايت [ جهت مشاهده لينك عضو شويد ! ] كلاس آماده اي رو در اختيارتون مي ذاره كه قطعاً مشكلات فارسي نويسي و بارگزاري متون فارسي از طريق فلش رو تا حدودي بهبود مي بخشه .

راهنماي استفاده از كلاس مذكور هم در همون سايت موجود هستش ؛ با اين حال در صورت بروز مشكل مي تونيد در فارس وب و تاپيكي جدا مطرح كنيد .

مرجع آدرس ها