Форум 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=137544)

NAO111 16.03.2010 14:42

Не принимает за функцию.. Помогите
 
Доброго времени суток! Всегда работал на AS2. Сел за AS3. Почитал материал и пнринялся писать что то маленькое и быстренько. Вот заступорился, не пойму в чём дело - помогите. Ситуация:


Расположение папок: Папка с .fla файлом -> папка Scripts -> тут файлы .as

Файл .fla:
1. Пустое поле. Class: Scripts.main.
2. В библиотеке один символ. В настройках у него поставил галку "Исп для AS" и прописал класс hero.


Файл main.as :

Код AS3:

package Scripts {
 
        import flash.display.MovieClip;
        import Scripts.hero;
 
 
        public class main extends MovieClip {
 
        public var hero_Yellow:hero = new hero();
 
                public function main() {
 
                        hero_Yellow = new hero();
                        addChild(hero_Yellow);
 
                        hero_Yellow.initial();
 
                }
 
        }
 
}



Файл hero.as :

Код AS3:

package Scripts {
 
        import flash.display.Sprite;
 
        public class hero extends Sprite {
 
                public function initial() {
                        this.x = 100;
                        this.y = 50;
                }
 
        }
}

Проблема: При запуске пишет ошибку в файле main.as на строку hero_Yellow.initial();
что это не является функцией...

Помогите.

fljot 16.03.2010 14:53

Цитата:

Сообщение от NAO111 (Сообщение 893444)
2. В библиотеке один символ. В настройках у него поставил галку "Исп для AS" и прописал класс hero.

надо Scripts.hero

вообще, конечно, надо
scripts.Hero
Main
yellowHero.initialize()

udaaff 16.03.2010 14:54

В настройках надо полное имя класса прописывать, т.е. с пакетом вместе. Тем более там есть рядом кнопка, для того, чтобы можно было проверить видит ли Flash ваш класс.

ps: Названия пакетов с маленькой, а классов с большой принято писать.

Kidd002 16.03.2010 14:55

Уже помогли )
Пара замечаний:
1.
public var hero_Yellow:hero = new hero();
hero_Yellow = new hero();
Зачем вы пытаетесь создать объект два раза?
2. Называйте классы с большой буквы.

udaaff 16.03.2010 14:56

Цитата:

У класса hero нет конструктора hero().
Конструктор неявно создается. Его не обязательно прописывать, если он пустой.

NAO111 16.03.2010 14:59

Спасибо большое за советы! "Проблема" =) закрыта.

Kidd002 16.03.2010 15:05

Да, я уже проверил. Почему-то раньше думал что конструктор нужно обязательно прописывать :\


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

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