سؤال

أنا على التوالي في قضية غريبة مع itemRenderers داخل TileList.

هنا هو على سبيل المثال العمل دون itemRenderer:152.org/flex/

هنا هو نسخة مكسورة مع itemRenderer:152.org/brokenExample/
(ليس لدي مندوب إلى جعل كل من هذه الرابط)

كل الأمثلة "عرض المصدر" تمكين.

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

يبدو أن هذا من المعروف على نطاق واسع الشوائب, ولكن أنا لا يمكن أن تجد حلا لذلك.

التحديث
بدأت اللعب مع هذا المثال مرة أخرى وجدت شيء آخر.اتضح أنك لا تضطر إلى تجاوز البيانات واضع.يمكنك إنشاء طريقة جديدة في itemRenderer أن يتم تعيين كلما البلاط يريد التحديث.الخدعة هو أن لا تعتمد على تهيئة أو creationComplete الأساليب.

هذا هو ما لدي من أجل itemRenderer في التطبيق.

<itemRenderers:ImageTile img="{data}"/>

هذا هو رمز لدي في itemRenderer.

public function set img(value:String) : void {
  trace("setting source: " + value);
  this.source = value;
  this.name = value.toString().split("/").pop().split(".").shift();
}

لقد قمت بتحديث بلدي على سبيل المثال أن رد الفعل هذا التغيير.

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

المحلول

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

<?xml version="1.0" encoding="utf-8"?>
<mx:Image xmlns:mx="http://www.adobe.com/2006/mxml" initialize="init()">

 <mx:Script>
  <![CDATA[

   override public function set data(value:Object):void
   {
    super.data = value;
    this.source = data;
    this.name = data.toString().split("/").pop().split(".").shift();
   }

   private function init() : void {
    // Removed from your source and transplanted above
   }

  ]]>
 </mx:Script>

</mx:Image>

فليكس سوف محاولة إعادة استخدام البند عارضين في قوائم (مما يعني أن دورة حياة الأحداث يمكن أن نتوقع -- تهيئة creationComplete ، إلخ.-- لن دائما النار) ، حتى إذا كنت تريد أن تتأكد من العارض عندما يحصل على تحديث بيانات البند التغييرات (كما سوف عندما انتقل الأحداث يحدث) ، أفضل الممارسات تجاوز العارض بيانات المنشأة.أن الأرجح في حل المشكلة.

نصائح أخرى

ربما حاول أن ينقض على creationComplete?

على ما أذكر مع DataGrids (التي تعمل إلى حد ما على نحو مماثل إلى tilelist) ، عندما البند يأتي إلى التركيز في صوغه.

<mx:itemRenderer>
  <mx:Image id="myImage" creationComplete="myImage.invalidate()" />
</mx:itemRenderer>

لم يحاكم هذا القانون ولكن أعتقد أن هذا هو المكان الذي تريد أن تبدأ في النظر.أخذت نظرة على itemRenderer المكون.محاولة creationComplete بدلا من تهيئة استدعاء الدالة

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