Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Ошибка 1119. Как сделать ссылку с динамическим типом? (http://www.flasher.ru/forum/showthread.php?t=104639)

Thanx7 29.11.2007 12:35

Ошибка 1119. Как сделать ссылку с динамическим типом?
 
У меня возникла следующая ошибка:

Код:

1119: Access of possibly undefined property text through a reference with static type my_text_class.
Я вызвал из одного класса код:

Код:

var my_text:my_text_class=new my_text_class();
addChild (my_text);
my_text.text=" " + Math.round(my_ns.bytesLoaded / 1000) + " из " + Math.round(my_ns.bytesTotal / 1000) + " Kb (" + Math.round(pctLoaded * 100) + "%)";

А вот сам класс, где создаётся динамическое тектстовое поле:

Код:

package {
    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.text.TextFieldType;

    public class my_text_class extends Sprite {
               
        public function my_text_class() {
            var tfDynamic:TextField = createTextField(10, 10, 100, 20);
            tfDynamic.type = TextFieldType.DYNAMIC;
            tfDynamic.text = "hello";

            var tfInput:TextField = createTextField(10, 45, 100, 20);
            tfInput.type = TextFieldType.INPUT;
            tfInput.text = "world";
        }

        private function createTextField(x:Number, y:Number, width:Number, height:Number):TextField {
            var result:TextField = new TextField();
            result.x = x;
            result.y = y;
            result.width = width;
            result.height = height;
            result.background = true;
            result.border = true;
                       
                        result.font="Verdana";
                        result.color=0x7f7f7f;
                        result.size=10;
                       
            addChild(result);
            return result;
        }
    }
}

Подскажите, пожалуйста, как сделать ссылку с динамическим типом?

etc 29.11.2007 13:14

Кто вас там классы научил называть?
И где у вас в коде геттер-сеттер text?

Thanx7 29.11.2007 13:39

Спасибо за наводку.

Thanx7 29.11.2007 16:05

Вот, подумал, и всё получилось.
А класс переименовал.:)

Код из класса, который вызывает:

Код:

// Добавляем текстовое поле
var my_text:pg_inscription=new pg_inscription(percent_of_loading);
addChild (my_text);

И сам pg_inscription:

Код:

package {
    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.text.TextFieldType;

    public class pg_inscription extends Sprite {
               
        public function pg_inscription(s:String) {
            var tfDynamic:TextField = createTextField(10, 10, 100, 20);
            tfDynamic.type = TextFieldType.DYNAMIC;
            tfDynamic.text = s;
        }

        private function createTextField(x:Number, y:Number, width:Number, height:Number):TextField {
            var result:TextField = new TextField();
            result.x = x;
            result.y = y;
            result.width = width;
            result.height = height;
            result.background = true;
            result.border = true;

            addChild(result);
            return result;
        }
    }
}


etc 29.11.2007 16:07

Вы где-нибудь во Flash видели имена классов, начинающихся со строчной буквы и имеющие подчеркивания в названии?

Thanx7 29.11.2007 16:46

Это я стараюсь, как в пути к файлу, не употреблять заглавных букв, а только маленькие. А насчёт того, чтобы уйти от подчёркивания - я подумаю. :) Действительно, нигде не видел. Самоучка.


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

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