0

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

  1. 有没有更好的方式来显示图片,80x80,直接从服务器加载;
  2. 如何使行的高度动态化,我的意思是,取决于 3 StyleableTextFeild 的高度
  3. 这是在图像上添加侦听器的正确方法吗,这将触发一个简单的 HTTPService,

这是课堂上的功能,任何帮助将不胜感激!

  • 图片

将其声明为一个简单的图像:

    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();
            });
    }
    
4

1 回答 1

1
  1. 如果您计划在客户端缓存图像,则可以使用 URLLoader 或 Loader 加载图像,如果您缓存图像,它将帮助您在用户滚动列表时不再加载图像。(你所做的是好的,但你会遇到性能问题)
  2. 对于可变行高,如果 Datagroup 不起作用,请使用 List。在这里找到它Flex 4:将 Spark 列表高度设置为其内容高度
  3. 某些项目应该有一个 buttonMode 属性,为 logo 设置 buttonMode,对于可变行高,在数据组上找到与 wordWrap 和 variableRowHeight 属性相关的内容。

有一些建议,您编写的代码很好,但是,不要在集合数据上添加侦听器,而是在创建完成时添加它,因为它更合适。此外,事件侦听器必须是弱引用,http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/events/EventDispatcher.html#addEventListener()

于 2013-10-11T16:41:43.440 回答