كيف يمكنني تحميل الصور كأيقونات ديناميكيا في مادة تيليلية باستخدام المرن؟

StackOverflow https://stackoverflow.com/questions/539458

سؤال

حسنا، لذلك لدي تقديم مخصص الذي قمت بإنشائه:

<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"
  horizontalAlign="center"
  verticalAlign="middle"
  width="100"
  height="100">
  <mx:Script>
    <![CDATA[
      [Bindable]
      private var fileLabel:String;

      [Bindable]
      private var fileIcon:Class;

      override public function set data(value:Object):void{
        fileLabel = value.label;
        fileIcon = value.file.url;
      }
    ]]>
  </mx:Script>
  <mx:Image source="{fileIcon}" />
  <mx:Label text="{fileLabel}" />
</mx:VBox>

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

نظرا: القيمة هي نوع من المجمع لفئة الملفات. أريد تعيين MX: مصدر الصورة إلى شيء يجب أن يكون من نوع الفصل. باستخدام NativePath أو URL يعطيني خطأ يلقي. أرى أطنان من الأمثلة عبر الإنترنت باستخدام XML وشيء مثل "تضمين (/url/to/img.jpg)". أعدك أنه إذا أعطيتني أحد هذه الأمثلة (باستخدام صورة ثابتة) سأقدم لك تصويت سلبي. هذا ليس ما أبحث عنه هنا!

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

المحلول

السبب في أن هذا لا يعمل هو لأن نوع fileIcon الملكية Class. وبعد سوف ترغب عموما فقط فقط كائن من النوع Class إذا كنت تخطط لاستخدامها مثل المصنع، فقم بإنشاء مثيلات من هذا الفصل معها. عند استخدام [Embed] البيانات الوصفية، تشير إلى المحول البرمجي الذي يجب أن تضمين الأصول المحددة في SWF وأيضا إنشاء Class لتكون بمثابة مصنع لمثيلات كائن البيع التي يمكن أن تمثل هذا الأصل. ومع ذلك، كما كنت قد اكتشفت بالفعل قبل نشر هذا السؤال، المشكلة مع [Embed] هل تحتاج إلى التعديل المرجع، لا يسمح لك بتوفير قيمة في وقت التشغيل (لأن المحول البرمجي يحتاج إلى تضمين الأصول حرفيا، في وقت الترجمة).

لحسن الحظ، mx:Image.source هو خاصية مرنة للغاية تقبل أيضا السلاسل (على الرغم من أن معظم الوثائق توضح استخدامها بأصول مضمنة). طالما أن التطبيق المرن قادر على تحميل الأصل، يمكنك فقط تزويد عنوان URL مكتوب بالسلسلة كما source.

تغيير نوع fileIcon إلى سلسلة، وتحقق أيضا من ذلك value.file.url هو في الواقع عنوان URL للصورة التي يمكن أن يحمل تطبيقك. (يمكنك اختبار هذا فقط عن طريق الصغار هذا عنوان URL في mx:Imagesource ينسب.)

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