تغییر نام فرزندان یک مووی کلیپ

splinter cell

Well-Known Member
سلام خدمت دوستان و اساتید انجمن
من یک مووی کلیپ دارم به نام باکس که داخلش از 10-15 تا مووی کلیپ دیگه تشکیل شده و این بچه ها هیچکدومشون دارای instance Name نیستند. من این بکس رو لینکیج کردم و با دستور addChild اون رو به استیج اضافه میکنم و حالا میخوام اسامی بچه ها رو به ترتیب obj1,obj2,obj3,....بذارم. ولی با کمال تعجب میگه امکان تغییر نام وجود نداره:shock:

[PHPS]

Error: Error #2078: The name property of a Timeline-placed object cannot be modified.
at flash.display::DisplayObject/set name()
at test_fla::MainTimeline/frame1()


[/PHPS]

در حالیکه اسم باکس رو میشه به هر چیزی تغییر داد ولی مووی کلیپهای داخل اون رو نمیشه.لطفاً راهنمایی کنید چکار باید کرد و راهش چیه؟
یک نمونه پیوست کردم که بیانگر مشکل هست لطفاً نگاهی بهش بندازید
سپاس فراوان:rose:
 

پیوست ها

  • test.rar
    7.5 کیلوبایت · بازدیدها: 14

++Hadi++

Active Member
علتش اینه که اگه اسمی رو تو instanceName یه مووی کلیپ درگ شده تو یه فریم به صورت فیزیکی و از property panel قرار بدین،مشخصه name اون به مقدار داده شده توسط شما تغییر پیدا می کنه و در غیر اینصورت ،فلش یه اسمی رو به عنوان instance xx بهش می ده.اما در مورد مووی کلیپ به جهت بودنش از نوع کلاسهای داینامیک می تونید هر شی از نوع display object رو که ما حصل getChildAt هست رو به MovieClip کست کنید (cast) و به این روش به اون اسم جدید و مشخصه جدید ثانویه بدین:
PHP:
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.display.DisplayObject;

var box1:MovieClip=new box;
trace(box1.name);
box1.name="mohsen";//نام مووی کلیپ اصلی رو براحتی میشه تغییر داد
trace(box1.name);
addChild(box1);


for (var i:int=0;i<box1.numChildren;i++)
{
    trace(box1.getChildAt(i).name);
    //box1.getChildAt(i).name="obj"+String(i);// خطا
    MovieClip(box1.getChildAt(i)).NAME="obj"+String(i);
    trace(MovieClip(box1.getChildAt(i)).NAME);
}
for(var j:int=0;j<box1.numChildren;j++)
{
    trace(MovieClip(box1.getChildAt(j)).NAME);
}
نتیجه این هست:

instance1
mohsen
v8
obj0
v6
obj1
v5
obj2
v7
obj3
v4
obj4
v2
obj5
v1
obj6
v3
obj7
obj0
obj1
obj2
obj3
obj4
obj5
obj6
obj7
امیدوارم به دردتون خورده بشه...
 

splinter cell

Well-Known Member
ممنونم هادی جان.با توضیحات شما مشکلم حل شد.
تا حالا به این مورد cast برخورد نکرده بودم.این فلش هم بعضی وقتها کارهایی میکنه ها!!؟:shock:
 

++Hadi++

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

جدیدترین ارسال ها

بالا