ریختن مووی کلیپ تو آرایه و صدا زدنش !

سلام
سریع میگم سریع بم چواب بدید دوستای همیشه گلم ....

این کد روی فریم جواب میده ولی روی کلاس که مینویسم چواب نمیده مشکل اینه ...
کد:
    public class Main extends MovieClip
    {
    private var arr:Array= new Array(dot1,dot2,dot3,dot4,dot5,dot6,dot7,dot8,dot9,dot10,dot11,dot12,dot13)

        public function Main()
        {
        
        addFrameScript(116,frameFunction); // (zero based) // در فریم 117 ستیج برایمان یک اسگریپت اضافه میکند
        return
        }
        
        
        private function frameFunction():void {
        trace("Executing  code for star Frame  117" );
        stop();
        
        //delete frame script by passing null as second parameter
        //addFrameScript(116,null);
        //
                for (var i:int=0; i<13 ; i++)
        {
        arr[i].buttonMode=true;
        //arr[i].addEventListener(MouseEvent.ROLL_OVER,_Over)
//        arr[i].addEventListener(MouseEvent.ROLL_OUT,_Out)

            
        }

        
        }

بقیه کد ها مهم نیست فقط زمانی که میخوام آرایه رو لیستنر براش تعین کنم میگه که آرایه وجود نداره و null هست مقادیرش در صورتی که همین کد روی فریم اصلی تایملاین جواب میده چرا ؟؟؟ حس میکنم مشکل تبدیلاتی داریم اینجا ! مثلا اینکه مموی کلیپ توی کلاس نمیتونه توی آرایه قرایر بکیره ؟؟؟؟:rose:
 

manjav

New Member
جواب نمی ده که شما نوشتی نمیتونه منو راهنمایی کنه تا کمکی به شما بکنم
اما آنچه از کد بالا فهمیدم اینه که شما میخواهی تو فریم 117 ، 13 کلید رو کنش موس آور و موس اوت اختصاص بدی

خوب شما یه لیسنر اینترفریم بزار تو کلاس اصلی موی کلیپ بعد هر وقت فریم جاریت 117 بود کد حلقه خودتو اجرا کن
همین

اگر حل شد مشکلت که هیچ اگر نه بگو در خدمتیم.
 
اونو که شما فرمودید و خوب هم فهمیدی و انجامشم دادم به درستی من مشکلی با لیستنر و شماره فریم ندارم ! ولی اصل سوال من چیز دیگه بود اصل سوال من اینه که من میخوام مووی کلیپ هایی که روی استیج دارم رو بریزم توی یک آرایه مثلا الان 13 تا مووی کلیپ دارم میریزمشون توی آرایه بعد از طریق حلقه for و اندیس خوانی آرایه ها میخوام لیستنر به مویی کلیپ هام اختصاص بدم که حجم کد من رو به حداقل میرسونه ... امیدوارم بتونید کمکم کنید ممنون ..
 

yaa110

کاربر فعال
سلام، کدتون را به صورت زیر تغییر بدید و امتحان کنید:
کد:
MovieClip([COLOR=#333333]arr[i]).addEventListener(MouseEvent.ROLL_OUT,_Out);[/COLOR]
 

spryboy

کاربر فعال
سلام

شما باید آرایه تون رو داخل متد کانستراکتور (متد Main) مقدار دهی کنید. چند خط اول کدتون باید به شکل زیر باشه.
[PHPS]public class Main extends MovieClip{


private var arr:Array;


public function Main()
{
arr = new Array(dot1,dot2,dot3,dot4,dot5,dot6,dot7,dot8,dot9,dot10,dot11,dot12,dot13);
addFrameScript(116,frameFunction); // (zero based) // در فریم 117 ستیج برایمان یک اسگریپت اضافه میکند
}
.
.
.
.
.[/PHPS]


موفق باشید

 
سلام مرصی از راهنمایییت ولی بازم کار نمیکنه خیلی عجبه ! من توی فریم که موی کلیپ رو میریزم تو آـرایه میشناسه ولی تو کلاس نمیشناسه خیلی معضل بزرگی واقعا ! اصلا من لیستنر هم نمیدم میام trace میکنم آرایه رو .. توی آرایه هیچی نیست ! وقتی رشته توی آرایه میریزم نشون میده ولی مووی کلیپ رو نمیشناسه ! چرا خدا ؟؟؟؟
 

spryboy

کاربر فعال
سلام
کتابخانه ای (کلاسی) رو که شما ازش برای اضافه کردن اسکریپتها به فریم ها استفاده کردید، من نمیشناسم و روش کارش رو نمیدونم به چه صورته، اما فکر میکنم اگر مقدار دهی آرایه رو به داخل متد ()frameFunction منتقل کنید، مشکلتون بر طرف بشه. ظاهرا مووی کلیپهای شما در فریم 116 روی استیج قرار داده شده اند.
[PHPS]
public class Main extends MovieClip
{

private var arr:Array;


public function Main()
{


addFrameScript(116,frameFunction);// (zero based) // در فریم 117 ستیج برایمان یک اسگریپت اضافه میکند
return;
}

private function frameFunction():void
{
arr = new Array(dot1,dot2,dot3,dot4,dot5,dot6,dot7,dot8,dot9,dot10,dot11,dot12,dot13);//مقدار دهی آرایه
trace("Executing code for star Frame 117" );
stop();


//delete frame script by passing null as second parameter
//addFrameScript(116,null);
//
for (var i:int = 0; i < 13; i++)
{
arr.buttonMode = true;
arr.addEventListener(MouseEvent.ROLL_OVER,_Over);
arr.addEventListener(MouseEvent.ROLL_OUT,_Out);
}
}
}[/PHPS]
 
مرصی دوستم خیلی خوب بود راهنماییت درست شد .... اون دستور

addFrameScript هم برای اینه که بتونی توی یک فریم که هنوز بهش نرسیدی اکشن بنویسی مثلا فریم 117 که رسیدی اکشن اجرا میشه ....

مرصی
 

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

بالا