مشکل در load - هم اکنون نیازمند یاری سبزتان هستیم

hamed_256giga

کاربر فعال
سلام
من می خوام یه عکس رو load کنم
اگه url درست نبود یک عکس دیگه load بشه ( که همیشه هست!)
از کجا می شه فهمید که url درست هست یا نه؟


یا اصلا اگه بخواهم از

loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,
ioErrorListener);

استفاده کنم چطوری میشه تو listener دوباره loader رو با همون عکسی که همیشه هست
load کنم؟
 

scup

Member
خوب یک کاری کن...اول اون عکس که همیشه هست رو دیفالت قرار بده...که اگه لود شد عوض شه در غیر این صورت...
 

hamed_256giga

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

BehrouzPc

پــــادشــاه فــلــــش
از رویدادHTTPStatusEvent استفاده کنید. برای تعریف رویداد از HTTPStatusEvent.HTTP_STATUS استفاده کنید

خوب با این کار می تونبد توسط e.status عددی که شامل وضعیت هست رو دریافت کنید ، مثلا 404 عدم وجود فایل و 200 درست بودن عملیات و...

PHP:
  function HttpStatusHandler(e:HTTPStatusEvent):void {		
			trace(e.status);		
 }


فکر کنم این رویداد به کار شما بیاد.

موفق و پیروز باشید
 

hamed_256giga

کاربر فعال
این کد مگه برای فایل های تو سیستمی که air داره اجرا می شه هم جواب می ده؟

من اینو نوشتم جواب نمی ده!!!

چه جوری کار می کنه؟
PHP:
[LEFT]

var a:Loader = new Loader();
var str:String = new String("1.png");

a.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
a.load( new URLRequest( str));
addChild(a);
function httpStatusHandler(event:HTTPStatusEvent):void {
	str = "2.jpg";
}

[/LEFT]
 

hamed_256giga

کاربر فعال
تصویر 2 همیشه هست ولی تصویر 1 معلوم نیست که باشه یا نه!!!

می خوام اگه تصویر 1 نبود تصویر 2 load بشه.
 

++Hadi++

Active Member
خیلی ممنون از بهروز جان...
روش دیگه این کار اینه :
PHP:
var loader:Loader=new Loader();
var defaultURL:String="Pictures/DefaultPic.jpg";
addChild(loader);
loader.load(new URLRequest("myPic.jpg"));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeFun);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,err);
function err(evt:IOErrorEvent):void
{
    trace("Default");
    loader.load(new URLRequest(defaultURL));
}
function completeFun(evt:Event):void
{
    loader.contentLoaderInfo.removeEventListener(Event.COMPLETE,completeFun);
    loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR,err);
    trace("Loading SuccessFully ");
}
سورسو دان و در cs4 باز کن ...
در حالت اولیه myPic لود می شه و هر وقت اونو حذف کنی ، اون default لود می شه ...
کافیه myPic رو حذف کنی تا نتیجه بعدی رو ببینی...
بای...
 

پیوست ها

  • DefaultLoader.rar
    95.5 کیلوبایت · بازدیدها: 18

hamed_256giga

کاربر فعال
مرسی هادی جان اما من از این روش نمی تونم استفاده کنم!!!
چون loader سراسری نیست در ioErrorListener به loader دسترسی ندارم وگر نه مشکل حل بود
الان با یه همچین روشی مشکلم رو حل کردم ولی روشی که به کار بردم جالب نیست فقط اگر راه حلی برای :
1- اگه url درست نبود یک عکس دیگه load بشه ( که همیشه هست!)
از کجا می شه فهمید که url درست هست یا نه؟

2-یا اصلا اگه بخواهم از

loader.contentLoaderInfo.addEventListener(IOErrorE vent.IO_ERROR,
ioErrorListener);

استفاده کنم چطوری میشه تو listener دوباره loader رو با همون عکسی که همیشه هست
load کنم؟
 

++Hadi++

Active Member
اینو تست کن ، من در مورد رویداد زیر از اون جواب گرفتم :
PHP:
loader.contentLoaderInfo.addEventListener(Event.Complete)
جواب داده :
PHP:
function Errorr(evt:IOErrorEvent):void
{
    var INFO:LoaderInfo=LoaderInfo(evt.currentTarget);
    INFO.removeEventListener(IOErrorEvent.IO_ERROR,error);
    var myNewLoader:Loader=INFO.loader;
myNewLoader..... 
}
از اینجا می شه به اصل اون لودر دست پیدا کرد .مثل همون evt.currentTarget می مونه .
در ضمن می تونی لودر ها رو در آرایه بریزی .
بعد به هر کدومشون مشخصه name بدی و با استفاده از name هر نمونه ، به خونه مناسب از آرایه لودر ها دست پیدا کنی .
من اینکار رو کردم و جواب گرفتم .
بای...
 
آخرین ویرایش:

hamed_256giga

کاربر فعال
ایول داش هادی دمت گرم
ماشالله
خدا خیرت بده انشالله

کار کرد توپ

انشالله جبران کنم
 

hamed_256giga

کاربر فعال
ببخشید دوباره مزاحم می شم ولی این روش توی یه نمونه درست جواب می ده ولی توی پروژه ی خودم نمی شه!!
این error رو می ده :

Error: Error #2099: The loading object is not sufficiently loaded to provide this information.
at flash.display::LoaderInfo/get loader()
 

hamed_256giga

کاربر فعال
اهایییییییییییییی
کسی نیست جواب من رو بده؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
هادی کار کاره خودته!!!
 

++Hadi++

Active Member
راستی به خاطر اینه که هنوز اون لودرت به طور کامل اون مولتی مدیا رو لود نکرده تا شی کامل اونو در یه متغیر لودر قرار بده .
تنها چیزی که به ذهنم می رسه همون name و آرایه هست .
یعنی نامی که از حلقه شمارنده حلقه for به هر لودر ساخته شده داده می شه و دسترسی به اون نام از طریق فانکشن خطا و رفتن به یه آرایه ای که تمام لودر ها در اون هستند و با استفاده از نام ، به خانه مناسب دست پیدا کنی .
بهتر بگم در یه حلقه for ، اسمی رو به هر لودر (هون شماره حلقه ) اختصاص می دی و بعد در همون حلقه ، اونو در یه آرایه و در درایه همون شمارنده حلقه قرار می دی .
فک کنم منظورمو فهمیدی چون C++ کار می کنی .
بای...
 

hamed_256giga

کاربر فعال
ممنون از راهنماییت
منظورت از name دادن چیه؟
myloader.name = i
و بعد توی ioErrorListener
یه for بذارم
PHP:
for(var i:int = 0;i<n ;i ++ )
if(array[i] .name == i)
array[i].load("image");//end
 

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

بالا