为Flex移动应用程序优化ItemRenderer

时间:2013-10-11 14:53:07

标签: actionscript-3 flex itemrenderer

我创建了这个类,它是一个ItemRenderer类,用于DataGroup(移动应用程序), 我不完全确定我是否做对了,我的问题是:

  1. 是否有更好的方式来显示图像,即80x80并直接从服务器加载;
  2. 如何使行的高度动态,我的意思是,取决于3个StyleableTextFeild的高度
  3. 这是在图像上添加侦听器的正确方法,它将触发一个简单的HTTPService,
  4. 以下是该课程的功能,非常感谢任何帮助!!

    • 图像

    将其声明为简单图像:

        var logo:Image;
    

    覆盖createChildren

        logo = new Image();
        addChild(logo);
    

    我在set Data

    上添加了
        logo.source = "http://192.168.0.15:3000/"+value.logo_thumb_url;
    
    • 尺寸

      override protected function measure():void {
          measuredWidth = measuredMinWidth = stage.fullScreenWidth;
          measuredHeight = measuredMinHeight = 100;
      }
      
    • 监听

          override public function set data(value:Object):void {
          tel.text = String(value.Tel);
          description.text = String(value.Descricao);
          nome.text = String(value.Nome);
          logo.addEventListener(MouseEvent.CLICK, function():void{
                  var service:HTTPService = new HTTPService();
                  service.url = value.targer;
                  service.method = "GET";
                  // setting headers and other variables ...
                  service.send();
              });
      }
      

1 个答案:

答案 0 :(得分:1)

  1. 如果您计划在客户端缓存图像,则可以使用URLLoader或Loader加载图像,如果缓存图像,它将帮助您在用户滚动列表时不再加载图像。 (你所做的是好的,但你会遇到性能问题)
  2. 对于可变行高,如果Datagroup不起作用,请使用List。在Flex 4: Setting Spark List height to its content height
  3. 找到它
  4. 某些项目应该有一个buttonMode属性,使其成为徽标的buttonMode,对于变量行高度,在数据组中查找与wordWrap和variableRowHeight属性相关的内容。
  5. 有一些建议,你编码的是好的,但是,不是在设置数据上添加监听器,而是在创建完成时添加它,因为它更合适。此外,事件侦听器必须是弱引用,http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/events/EventDispatcher.html#addEventListener()