Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Почему child равен нулю? (http://www.flasher.ru/forum/showthread.php?t=145437)

Jackson 07.10.2010 18:37

Почему child равен нулю?
 
Всем привет!
У меня есть класс библиотека:
Код AS3:

package
{
        import flash.display.MovieClip;
 
        public class Lib
        {
                [Embed(source = '../img/car.png')]
                static private var CarHeroClass:Class;
 
                [Embed(source = '../img/wheel.png')]
                static private var CarWheelClass:Class;
 
                static public function get car_hero():MovieClip
                {
                        return (new Lib.CarHeroClass() as MovieClip);
                }
 
                static public function get car_wheel():MovieClip
                {
                        return (new Lib.CarWheelClass() as MovieClip);
                }
        }
}

В конструкторе другого класса делаю вызов:
Код AS3:

car_body = Lib.car_hero;
car.addChild(car_body);

Когда запускаю (Flex), вываливается ошибка:

Цитата:

TypeError: Error #2007: Параметр child не должен быть равен нулю.
at flash.display::DisplayObjectContainer/addChild()
at CarHero()[C:\Documents and Settings\My Documents\Flash projects\first_game\src\CarHero.as:28]
at Main/init()[C:\Documents and Settings\My Documents\Flash projects\first_game\src\Main.as:28]
at Main()[C:\Documents and Settings\My Documents\Flash projects\first_game\src\Main.as:14]
Подскажите, пожалуйста, что я делаю не так... Вроде бы все сделал по примеру, и не работает...:
http://zeroinflash.fsca.ru/2010/07/0..._flashdevelop/

-De- 07.10.2010 18:52

Потому что CarHeroClass и CarWheelClass не наследники MovieClip, они наследники Bitmap.

Jackson 07.10.2010 20:00

Исправил класс:
Код AS3:

package
{
    import flash.display.MovieClip;
    import flash.display.Bitmap;
 
    public class Lib
    {
        [Embed(source = '../img/car.png')]
        static private var CarHeroClass:Class;
 
        [Embed(source = '../img/wheel.png')]
        static private var CarWheelClass:Class;
 
        static public function get car_hero():Bitmap        {
            return (new Lib.CarHeroClass() as Bitmap);
        }
 
        static public function get car_wheel():Bitmap
        {
            return (new Lib.CarWheelClass() as Bitmap);
        }
    }
}

И вызов:
Код AS3:

public var car_body:Bitmap; 
public function CarHero()
{
car_body = Lib.car_hero;
car.addChild(car_body);
}

Ошибку не выдал, но и объект не отобразился...
Как его отобразить?
Получается, что автор статьи сделал ошибку? Или это я уже намудрил?

Rembrant 07.10.2010 23:40

эмм..
Код AS3:

car_body = new Lib.car_hero;

?


Часовой пояс GMT +4, время: 08:24.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.