سؤال

أرى سلوكًا غريبًا مع فئة flash.media.Sound في Flex 3.

var sound:Sound = new Sound();
try{
sound.load(new URLRequest("directory/file.mp3"))
} catch(e:IOError){
 ...
}

ولكن هذا لا يساعد.أتلقى خطأً في الدفق، ويظهر في الواقع أنه موجود في مُنشئ الصوت.

الخطأ رقم 2044:حدث IOErrorEvent الذي لم تتم معالجته:.النص=خطأ #2032:خطأ في الدفق.في...]

لقد رأيت مثالًا واحدًا في مستندات Flex حيث يضيفون مستمعًا للحدث لـ IOErrorEvent، بالتأكيد لست مضطرًا إلى القيام بذلك، ويمكنني ببساطة استخدام محاولة الالتقاط؟هل يمكنني تعيين مستمع حدث فارغ؟

هل كانت مفيدة؟

المحلول

خطأ في IOE = لا يمكن العثور على الملف الهدف (أو لا يمكن قراءته لسبب آخر).تحقق من مسار الملف الخاص بك.

يحرر:لقد أدركت للتو أن هذه قد لا تكون مشكلتك، فأنت تحاول فقط اكتشاف خطأ الإدخال/الإخراج؟إذا كان الأمر كذلك، يمكنك القيام بذلك:

var sound:Sound = new Sound();
sound.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
sound.load(new URLRequest("directory/file.mp3"));

function ioErrorHandler(event:IOErrorEvent):void {
    trace("IO error occurred");
}

نصائح أخرى

ستحتاج إلى إضافة مستمع نظرًا لأن URLRequest ليس فوريًا.سيكون ذلك جداً سريعًا إذا كنت تقوم بالتحميل من القرص، ولكنك ستظل بحاجة إلى مستمع الأحداث.يوجد مثال جيد لكيفية إعداد هذا (مكتمل بمعالجة IOErrorEvent) في ملف com.livedocs.

حاول...التقاط ينطبق فقط على الأخطاء التي يتم طرحها عند استدعاء هذه الوظيفة.أي نوع من الأساليب التي تتضمن تحميل أشياء من الشبكة أو القرص وما إلى ذلك سيكون غير متزامن، أي أنه لا يتم تنفيذه بشكل صحيح عند الاتصال به، ولكنه بدلاً من ذلك يحدث في وقت ما بعد وقت قصير من الاتصال به.في هذه الحالة، فأنت بحاجة إلى addEventListener للتعرف على أي أخطاء أو أحداث أو لمعرفة متى يتم الانتهاء من التحميل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top