Actionscript:如何将自定义属性添加到Image实例?

时间:2010-09-24 13:35:13

标签: flex actionscript-3 actionscript

var image:Image = new Image();
image.property_1 = "abcdefg";

它无法编译,因为Flash构建器说:

Description  Resource     Path      Location       Type
1119: Access of possibly undefined property jdkfjds through a reference with static type mx.controls:Image.
             adm.mxml     /adm/src  Line 209       Flex Problem

我该怎么做?或者我需要扩展Image类?这很无聊。

3 个答案:

答案 0 :(得分:4)

如果您知道需要添加的所有属性,并且它们不会(经常)更改,这将有效。

package mypackage
{
    import mx.controls.Image;
    public class ExtendedImage extends Image
    {
        public function ExtendedImage()
        {
            super();
        }

        //option 1
        private var prop1:String = "";
        public function get property_1():String
        {
            return prop1;
        }
        public function set property_1(val:String):void
        {
            prop1 = val;
        }

        //option 2
        public var property_2:String = "";
    }
}

答案 1 :(得分:3)

Image未声明为dynamic class,因此您无法动态添加属性。

Image导出并使用 dynamic 关键字扩展课程:

package mypackage
{
  import mx.controls.Image;

  public dynamic class DynamicImage extends Image {}
}

现在这将有效:

import mypackage.DynamicImage;

var image:DynamicImage = new DynamicImage();
image.property_1 = "abcdefg";

答案 2 :(得分:0)

但是你可以为你的图像使用容器并在那里添加额外的属性;或者使用带有图像作为键和属性作为值的字典。

相关问题