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

uchenik12345 31.07.2009 17:17

просто вызов класса
 
Почему АS2 работает:
Код AS1/AS2:

1 frame: aa = new test();
 
test.as:
class test {
            function test() {trace("Hello World");}
}

в AS3 нет:
Код AS3:

frame1:  var aa = new test;
 
test.as:
package {
          class test {
                function test() {trace("Hello World");}
          }
}

пишет call to undefined method test, а я понимаю тут вообще методов нет и быть недолжно. Для корректности можно добавить public, extends, :Object+import и т.п. но сути это не меняло.

silin 31.07.2009 17:31

в AS3 и класс и конструктор д.б. public
Код AS3:

package {
        public class test
        {
                public function test()
                {
                        trace("Hello World");
                }
        }
}

к делу не относится, но принято писать () даже если нет аргументов - new test()
классы принято называть с прописной - Test

uchenik12345 31.07.2009 17:35

нет, с public работает, хотя читал что класс дефолту все public...
хорошо, давайте без кода во фрейме, с document class: test добавив импорт:

Код AS3:

package {
        import flash.display.MovieClip;       
        public class test extends MovieClip {
                public function test() {trace('aaaa');}
        }
}

работает, но непонятным остается зачем классу указывать что он public?

ostashko 31.07.2009 17:39

Цитата:

Сообщение от uchenik12345 (Сообщение 839607)
работает, но непонятным остается зачем классу указывать что он public?

Может я ошибусь, но по-моему, если это главный класс, то требуется чтобы он обязательно был public. (из книжки Мука)

Dimax4d 31.07.2009 17:49

Цитата:

нет, с public работает, хотя читал что класс дефолту все public...
по дефолту класс internal

uchenik12345 31.07.2009 17:52

мне непонятна сама идея private/public.
а писать лишние слова без понимания, а просто потому что так принятно как то неловко.

Dimax4d 31.07.2009 18:01

есть пакет. он содержит много классов. у каждого класса есть атрибут - public либо internal. public означет что этот класс доступен из других пакетов, internal означает что класс доступен только внутри своего пакета.


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

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