افزونه 1 بارگذاری یک عکس -مشکل کد زیر در چیست

programmermp

New Member
با سلام و خسته نباشید
من می خوام یک عکس رو از تو هاردم تو یک موی کلیپ نمایش بدم برنامه هم واسه قراردادن روسایت نیست قراره تو خوده ویندوز اجرا بشه
کد زیر همه چیزش درسته وقتی مسیر و نام فایل عکس رو بصورت کامل و ثابت در قسمت urlrequest وارد میکنم هیچ مشکلی نیست ولی اگر بصورت زیر بخواهم عمل کنم مثلا 5 بار درست کار میکنه بعد در اجرای بعدی خطای 1009 رو با متن زیر میده:(محل خطا هم خطی هست که با ستاره مشخص شده)
Error #1009: Cannot access a property or method of a null object reference.
راستی با کدهای چند خط ابتدایی(از کدهای زیر) محل قرار گیری عکس مورد نظر رو پیدا می کنم و از اون طریق آدرس و نام فایل رو واسه نمایش در مووی کلیپ در قسمت مربوطه قرار میدم
[LTR]
کد:
var rndnum1:Number;
           var fil:File =File.applicationDirectory.resolvePath("image");
                var dirlist:Array = fil.getDirectoryListing();
            function filenum(arr1:Array):Number{
                var filn:Number=0;
                for each(var file:File in arr1) {
                    if(!file.isDirectory){//trace(file.nativePath);
                    //trace(file.nativePath.replace(/\\/g,"\\\\"));
                        filn++;            
                    }
                }
             return filn;
            }
    rndnum1=randRange(1,filenum(dirlist));
    fil=dirlist[rndnum1];
    //var imgpath:String=fil.nativePath.replace(/\\/g,"\\\\");
    
//**************** Load Image
    
var myLoader:Loader = new Loader();
myLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressStatus);
myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderReady);


[B]var fileRequest:URLRequest = new URLRequest(fil.url); **************************[/B]
myLoader.load(fileRequest);




function onProgressStatus(e:ProgressEvent) {   
      // this is where progress will be monitored     
      ///trace(e.bytesLoaded, e.bytesTotal); 
}


function onLoaderReady(e:Event) {     
      // the image is now loaded, so let's add it to the display tree!     
      mc1.addChild(myLoader);
      myLoader.x=-360;myLoader.y=-270;
      myLoader.width=720;myLoader.height=540;
}

[/LTR]
من دیباگ هم که کردم اون fil.url در همون خط ستاره دار مقدار داره و خالی نیست، متعجبم که چرا بعد از چندبار اجرا خطای 1009 میده و میگه خالیه!!!!!!
لطفا راهنمایی کنید مشکل از کجاست
با تشکر فراوان
 
آخرین ویرایش:

akherat

مدیر انجمن
ببین من کدتو تست نکردم
اما از متن اررور میشه فهمید دقیقا به چی گیر میده
دوست عزیز میشه به من بگی چرا file.url ?
 

programmermp

New Member
ببین من کدتو تست نکردم
اما از متن اررور میشه فهمید دقیقا به چی گیر میده
دوست عزیز میشه به من بگی چرا file.url ?

سلام
متغیر fil ( نه file) از نوع فایل هست چون urlrequest پارامتری که میگیره از نوع url هست منم گفتم مقدار متد url از متغیر fil رو بهش بدم که میشد ادرس کامل فیزیکی فایلی که من با کدهای بالا ترش از توی یک فولدر موردنظر استخراج کردم و تو آرایه ای به اسم dirlist گذاشتم و واسه اینکه اون ادرس به فایل تبدیل بشه یک خونه بطور تصادفی از اون آریه انتخاب کردم و در متغیر filکه از نوع فایل هست گذاشتم. نمی دونم چرا بعضی اوقات پیام 1009 رو میده در بقیه موارد کار میکنه!!!
البته از متد nativepath هم استفاه کردم که تو 30 تا اجرا 3 بار همون خطای 1009 رو داد.
حالا اگه شما راه بهتری میدونید یا باید کار دیگه ای انجام بدم لطفا بگید
با تشکر فراوان
 
آخرین ویرایش:

akherat

مدیر انجمن
فکر کنم اگه تو فلش پلر اجراش کنی دیگه مشکلی پیش نیاد چون فلش پلیر معمولی سرعتش بالاتر از دیباگ باشه
اگه نشد این کار و بکن
1-از
nativepath استفاده کن بهتره
2- از اونجایی که نال بر میگردونه یه وقفه زمانی کوتاه بذار درست میشه با setTimeout و یا شرط بذار که اگه نال بود یه کار دیگه بکنه

 

programmermp

New Member
فکر کنم اگه تو فلش پلر اجراش کنی دیگه مشکلی پیش نیاد چون فلش پلیر معمولی سرعتش بالاتر از دیباگ باشه
اگه نشد این کار و بکن
1-از
nativepath استفاده کن بهتره
2- از اونجایی که نال بر میگردونه یه وقفه زمانی کوتاه بذار درست میشه با setTimeout و یا شرط بذار که اگه نال بود یه کار دیگه بکنه


سلام
ممنون بخاطر پاسخگوییتون
مشکل حل شد، مشکل از اونجایی بود که اندیسی خارج از محدوده برای آرایه انتخاب میشد(بعنوان عدد تصادفی)
با تشکر فراوان
 

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

بالا