Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Не могу вызвать функцию класса (http://www.flasher.ru/forum/showthread.php?t=178479)

maloun365 22.04.2012 18:45

Не могу вызвать функцию класса
 
есть класс внутри которого грузится ещё один класс, но не правильно похоже:)
вот он
Код AS1/AS2:

import folder1.loadclass;
class folder1.myclass  {
    public var Lclass:loadclass;
    ...
    function func1(){
        Lclass.showmessage();
    }
    ...
}

в файле проекта пишу

Код AS1/AS2:

var P:folder1.myclass = new folder1.myclass();
BlaBlaButton.onRelease = function(){
    P.func1();
}

негрузящийся класс выглядит так
Код AS1/AS2:

class folder1.loadclass{
        function showmessage(){
                trace("АПЧХИ");
        }
}

и тишина - функция, что бы в ней ни было не выполняется
и че делать, где ошибка?

КорДум 22.04.2012 19:14

Не пугайтесь, это проект на чистом AS2, без FlashIDE.
Код AS1/AS2:

import myPackage.Class1;
 
class Main {
        private static var _class1:Class1;
 
        public static function main(swfRoot:MovieClip):Void {
                _class1 = new Class1();
        }
 
        public function Main() {
 
        }
}

Код AS1/AS2:

import myPackage.Class2;
 
class myPackage.Class1 {
        private var _class2:Class2;
 
        public function Class1() {
                _class2 = new Class2();
                _class2.beep();
        }
}

Код AS1/AS2:

class myPackage.Class2 {
 
        public function Class2() {
 
        }
 
 
        public function beep():Void {
                trace("beep!");
        }
}


silin 22.04.2012 21:09

Lclass только объявлен, но не создан, вот и..
Код AS1/AS2:

class folder1.myclass
{
        var Lclass:loadclass;
        public function myclass()
        {
                Lclass = new loadclass();
        }
        function func1(){
        Lclass.showmessage();
    }
}


КорДум 22.04.2012 21:11

А где же тогда RTE?

silin 22.04.2012 21:43

да не было никогда RTE в AVM1 :)

maloun365 22.04.2012 22:32

спасибо за пример, но мне нехватает опыта довести его до рабочего состояния
выскочили две ошибки и не знаю как бороться с ними
Код:

Классы могут быть определены только во внешних сценариях классов ActionScript 2.0.

Функция "main" набрана в регистре, отличном от регистра имени в определении класса ("Main") и поэтому на стадии выполнения не будет распознана как конструктор класса.

можно не объявлять класс Main ?

Добавлено через 2 минуты
Цитата:

Сообщение от silin (Сообщение 1076466)
Lclass только объявлен, но не создан, вот и..

этот вариант мне больше нравиться :)
спасибо.

КорДум 22.04.2012 23:02

Цитата:

Сообщение от silin (Сообщение 1076471)
да не было никогда RTE в AVM1 :)

Честное слово не помню )
Не помню даже, как разыскивал ошибки.


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

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