【问题标题】:Optimize ItemRenderer For Flex Mobile Application为 Flex 移动应用程序优化 ItemRenderer
【发布时间】:2013-10-11 14:53:06
【问题描述】:

我制作了这个类,它是一个 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();
            });
    }
    

【问题讨论】:

  • 请记录您的代码。我们中的许多人都很忙,没有时间尝试剖析长代码段来回答一些“非==特定”的问题。
  • 希望这样更好,

标签: actionscript-3 apache-flex itemrenderer


【解决方案1】:
  1. 如果您打算在客户端缓存图像,您可以使用 URLLoader 或 Loader 加载图像,如果您缓存图像,它将帮助您在用户滚动列表时不再加载图像。 (你所做的是好的,但你会遇到性能问题)
  2. 对于可变行高,如果 Datagroup 不起作用,请使用 List。在这里找到它Flex 4: Setting Spark List height to its content height
  3. 应该有一些项目的buttonMode属性,为logo设置buttonMode,对于可变行高,在数据组上找到与wordWrap和variableRowHeight属性相关的东西。

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

【讨论】:

  • 对不起,即使我读了第一个问题我也没有得到我写的内容,我现在更改了代码检查它
  • 对答案进行了修改。
  • 这就是我需要知道的,谢谢!关于监听器,我这样做是因为图像的链接将在对象 Value 内......而且我正在覆盖这些函数并且真的不知道如何从设置数据之外的任何其他地方访问 Value
  • 在set data()方法中可以调用super.data = value,在渲染器的任何地方都可以通过this.data属性访问数据
  • 只是一个问题,当我点击列表中的一个元素并让听众按照你的方式进行时,我怎么能知道链接来自哪个对象?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-21
  • 1970-01-01
相关资源
最近更新 更多