جایگزین DuplicateMovieClip

salehi56

Member
در اکشن اسکریپت 2 می شد یک مووی کلیپ رو به تعداد دلخواه با DuplicateMovieClip کپی کرد
اما در اکشن 3 حذف شده
چطوری میشه در اکشن 3 این کار رو انجام داد؟
 

++Hadi++

Active Member
در اکشن 3 باید یه مووی کلیپ یا sprite یا هر نوع شی دیگه رو لینکیح کنید و بعد یه متغیر بوجود آورده و اونو new کنید...
 

salehi56

Member
منظورتون استفاده از addChild است؟!
خب این فقط یه دونه از اون مووی کلیپ رو ایجاد می کنه

فرض کنید من می خوام 10 یا 20 تا از اون مووی کلیپ رو قرار بدهم روی استیج
آیا باید 10 یا 20 بار از addChild استفاده کنم ؟!
میشه این دستور رو بزارم توی یک حلقه For تا به تعداد دلخواه از اون مووی کلیپ کپی روی استیج قرار بده؟

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

++Hadi++

Active Member
یه مووی کلیپ مثلا به اسم MC رو linkage می کنین البته به همون اسم کلاسی MC
بعد :
PHP:
for(var i:int=0;i<10;i++)
{
   var mc:MC=new MC();
this.addChild(mc);
mc.x=10;
mc.y=i*(mc.height+10);
}
اینجا یه سری مووی کلیپ با ایکس یکسان ولی y های مختلف البته به صورت ستونی و از بالا به پایین با فاصله 10 پیکسل بین هر کدوم ساخته می شه...
 
آخرین ویرایش:

salehi56

Member
خب دو تا سوال
سوال اول : اگر کلمه this رو قبل از addChild حذف کنیم بازم کار می کنه .... این کلمه رو برای چی گذاشتین و به کجا اشاره داره ؟ استیج ؟ اصلا اینجا کاربردش چیه ؟
سوال دوم : اگر بخواهیم هر کدوم از mc هایی که ساخته میشه اسم مجزا بهشون بده که بعدا بتونیم اونها رو در اکشن صدا بزنیم مثلا mc1...mc2 ...mc3 ... باید چی کار کنیم؟
 
آخرین ویرایش:

++Hadi++

Active Member
اشتباهی در نوشتن حرف M کلمه MC دستم رو shift بوده.دستور بالا اصلاح گردید...با عرض پوزش
 

salehi56

Member
هادی جان
با تشکر
لطفا اگر امکان داره جواب دو تا سوالی که در پست شماره 5 هست رو هم بفرمایید
 

++Hadi++

Active Member
1- this در C++ یک اشاره گر به شی ساخته شده از کلاسی هست که الان شما درونش دارید کد می نویسین.در واقع this به شی ساخته شده داره اشاره می کنه و تمام property ها و متد های اونو در اختیارتون می زاره البته می تونین بدون اون هم بنویسین.ولی اگه تو یه کلاس ،متغیر یا متد استاتیک تعریف کنید،این متغیر در ساختار root اون کلاس ساخته می شه و فقط با قید اسم اصلی کلاس قابل دسترسی هست و وقتی تو کلاس یه متد static تعریف کردین و تو اون می خواهین از this اسیتفاده کنین ،نمی تونین به متغیر ها و متد های اصلی دست پیدا کنین ،چون this به اشیای ساخته شده و مشخصه و متد هاشون اشاره داره و اشیای ساخته شده به صورت مجزا و اختصاصی اون مشخصه یا متد استاتیک رو به ارث نمی برند و اینکه static ها در ساختار اصلی کلاس هست و نمی تونند به اشیا و مشخصه ها و متد هاشون دست پیدا کنند.وباعث می شه یک متغیر در سراسر کلاس داشته باشیم و همه اشیا به اون به صورت یکتا و و احد نگاه کنند.در کل this به شی ساخته شده ای که الان در جریان هست اشاره می کنه.
2-اگر تو documentClass یا تو یه مووی کلیپ دارید کد می نویسین،چون مووی کلیپ از نوع کلاسهای داینامیک هستند،یعنی اینکه دو سیکل تعریف متغیر رو دارند.اولیه و ثانویه...اولیه ها فقط تو ساختار کلاس تعریف شده اند و کل اشیا به ارث برده اند.ثانویه ها رو به هر شی به طور جداگانه از بیرون و به صورت جدید با اسم بدون تکرار (به نسبت مشخصه ها و متد های اولیه و ثانویه دیگه) از هر نوعی که دوست داشتین اختصاص می دین و باعث می شه به راحتی به این سبک بتونین متغیر درست کنین البته به یکی از دو روش زیر:
PHP:
var arr:Array=new Array();
for(var i:int=0;i<500;i++)
{
   var mc:MyMC=new MyMC();//movieclip
    this.addChild(mc);
    mc.ItsName="OBJ"+String(i);
    mc.x=..
    mc.y=..
    arr.push(mc);
    .
    .
    .
}
روش دوم :

PHP:
for(var j:int=0;j<5000;j++)
{
    var mc:MyMC=new MyMC();
    this["OBJ"+String(j)]=mc;
    //this["OBJ"+String(j)]=new MyMC();
    this.addChild(mc);
}
در روش دوم برا هر شی از نوع کلاسهای داینامیک می تونید مستقیما همراه با اسم ،شی بوجود بیارید.حالا از هر نوعی که دوست داشتید...
در ضمن تو آموزش های اکشن 3 از صفر تو امضام اینا رو توضیح دادم...بای...
 
آخرین ویرایش:

benyamin_pc

Well-Known Member
جواب اینه : توی اکشن 3 هیچ دستور صافی و درستی برای duplicate موی کلیپ نیست
چرا؟ چونکه فرض کنین یه موی کلیپ با یه اسم لینکیجی دارین , اون موی کلیپو با لینکیجش رو استیج به شکل داینامیک ایجادش میکنین , یه چیزی توی اون موی کلیپی که ایجاد کردین لود میکنین , حالا بخاین این موی کلیپو با محتویاتش دوپلیک کنین دستور سر راستی نیست مگه اینکه دوباره یه موی کلیپ خالی با لینکیج بسازین و همون محتویات توش لود کنین که این درست نیست , برای اینکه اون موی کلیپی که با لینکیجش ایجاد کردین و چیزی توش لود کردین دوپلیکیت کنین بدون اینکه دوباره یه موی کلیپ خالی ایجاد کنین و همون محتویات دوباره توش لود کنین من یه کامپوننت تجاری نوشتم که اگه خاستین پیام خصوصی بدین
 

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

بالا