Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как вызвать функцию у другого представителя из этого же класса? (http://www.flasher.ru/forum/showthread.php?t=204755)

porokh 11.11.2013 09:00

Как вызвать функцию у другого представителя из этого же класса?
 
Класс Main
Код AS1/AS2:

package  {
 
        import flash.display.MovieClip;
 
        public class Main extends MovieClip {
 
                internal var ameba1:Ameba;
                internal var ameba2:Ameba;               
 
                public function Main() {
                        // constructor code
                        ameba1 = new Ameba();
                        ameba2 = new Ameba();
 
                        ameba1.makeNewAmeba(ameba2)
                }
        }
}

Класс Ameba
Код AS1/AS2:

package  {
 
        public class Ameba {
 
                var child:Ameba;
 
                public function Ameba() {
                        // constructor code
                }
 
                public function makeNewAmeba(param)
                {
                        child = param;
                        chlid.go();
                }
 
                public function go()
                {
                        trace("go");
                }
        }
}

Почему - то не не хочет запускать функцию go(). Ошибка undefinit property child.

caseyryan 11.11.2013 10:00

потому что там написано chlid, а не child. По-внимательнее нужно писать. А лучше использовать нормальный редактор кода, который умеет проверять синтаксические ошибки, типа FlashDevelop

п.с. as3 - типизированный язык. Нужно прописывать типы объектов, то есть в данном случае писать не
Код AS3:

public function makeNewAmeba(param)
                {
                        child = param;
                        chlid.go();
                }
public function go()
                {
                        trace("go");
                }

а
Код AS3:

public function makeNewAmeba(param:Ameba):void
                {
                        child = param;
                        chlid.go();
                }
public function go():void
                {
                        trace("go");
                }


porokh 11.11.2013 22:01

Позор..... ( Пошел ставить FlashDevelop...


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

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