Вызов конкретного ребенка - PullRequest
0 голосов
/ 05 ноября 2010

Я делаю небольшую программу, которая показывает булавки на карте.Информация о булавке поступает из файла XML, включая цену.Когда нажимается кнопка цены, скажем, 900 долларов, нужно увеличить только булавку с 900.Все выводы хранятся внутри pinContainer_mc (пустой контейнер для помещения всех выводов)

Класс выводов еретиков, который имеет метод увеличения.

package bin
{
    import flash.display.MovieClip;

    public class pin extends MovieClip
    {
        var thisHeight:int;
        var thisWidth:int;

        public function pin() 
        {
            thisHeight = this.height;
            thisWidth = this.width;
        }

        public function enlarge():void
        {
            this.height = thisHeight *2;
            this.width = thisWidth *2;
        }

        public function regular():void
        {
            this.height = thisHeight;
            this.width = thisWidth;
        }
    }   
}

Основной FLA имеет следующее:

// Parsing and displaying pins

for(var i:int = 0; i< myXmlList.length(); i++)
{
    pin_mc = new mcPin();
    pinContainer_mc.addChild(pin_mc);

    pin_mc.x = myXml.Community[i].xAxis;
    pin_mc.y = myXml.Community[i].yAxis;

    pin_mc.name = myXml.Community[i].Name;
    pin_mc.price = myXml.Community[i].Price;

}

При нажатии кнопки:

rangeA_mc.addEventListener(MouseEvent.CLICK, enlargePins);

function enlargePins(e:MouseEvent):void
{
    for(var i:int =0; i<pinConatiner_mc.numChildren;i++)
    {
        if(pinContainer_mc.getChildAt(i).price == 900)
        {
            pinContainer_mc.getChildAt(i).enlarge();
        }
    }
}

Выдает ошибку компиляции: Access of possibly undefined property price through a reference with static type flash.display:DisplayObject.

1 Ответ

0 голосов
/ 05 ноября 2010

getChildAt возвращает DisplayObject, у которого нет свойства цены.

Если вы уверены, что все дочерние элементы, которые вы добавили в pinContainer_mc (как кажется, у вас есть), вы можете привести возвращениеДля решения этой проблемы установите значение pin.

Измените код на:

if(pin(pinContainer_mc.getChildAt(i)).price == 900)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...