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

Void 11.08.2014 01:45

Помощь в оптимизирование кода
 
Есть 3 класса которые расположены в без именном пакете. Класс Main создает экземпляр класса TextField и Connect, экземпляр класса TextField передается в конструктор класса Connect. В классе Connect создается экземпляр класса Mes и вызывается его метод SendClientMessage, одним из параметров которого является экземпляр класса TextField переданный ранее. А в классе Mes уже производится изменения текста(экземпляра класса TextField). Можно ли это как-то упростить?

Основной целью всего этого ставится:
-Иметь возможность изменять значение поля tx основного класса из любого класса, по средствам класса Mes

Назначение каждого класса:
-Main - основной класс который и создает текстовое поле.
-Mes - касс который предназначен для изменения значения текстового поля, расположенного в классе Main
-Connect - класс из которого вызывается метод экземпляра класса Mes, для изменения значения текстового поля класса Main/


Код AS3:

Основной:
 
package
{
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.text.TextField;
        public class Main extends Sprite
        {
                var tx:TextField = new TextField();
                var cn:Connect = new Connect(tx);
                public function Main():void
                {
                        if (stage) init();
                        else addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                private function init(e:Event = null):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        addChild(tx);
                        new Mes().SendClientMessage(tx, "ТЕКСТ");
                }
 
        }
 
}

Код AS3:

Класс для отправки сообщения:
 
package 
{
        import flash.text.TextField;
        public class Mes
        {
 
                public function Mes()
                {
 
                }
                public function SendClientMessage(obj:TextField, msg:String):void
                {
                        obj.text = msg;
                }
        }
 
}

Код AS3:

Класс отправляющий сообщение
 
package
{
 
        import flash.text.TextField;
 
        public class Connect
        {
            public function Connect(obj:TextField)
                {
                    new Mes().SendClientMessage(obj, "Изменение текста");
                }
 
        }
}


ZackMercury 11.08.2014 03:02

Зачем оптимизировать то, что изначально неправильно построено?
Насчёт оптимизации, из-за ошибок и сбитого форматирования глаза не могут сконцентрироваться на коде.
Ещё, неплохо бы ещё почитать про конвенции.

А вообще, для читабельности, попробуйте оставлять пустую строку после импортов, пустую строку между всеми методами, и пустую строку между объявлением переменных и методов. (Не думал, что когда-нибудь придётся это кому-то писать)

Сейчас придёт Wolsh и всё вам расскажет, что да почему так.

P.S.
Я так понимаю, это вы после прочтения Колина Мука такое выдаёте? Кошмар)

Void 12.08.2014 22:27

Цитата:

Сообщение от SuriTheAngel (Сообщение 1170427)
Зачем оптимизировать то, что изначально неправильно построено?
Насчёт оптимизации, из-за ошибок и сбитого форматирования глаза не могут сконцентрироваться на коде.
Ещё, неплохо бы ещё почитать про конвенции.

А вообще, для читабельности, попробуйте оставлять пустую строку после импортов, пустую строку между всеми методами, и пустую строку между объявлением переменных и методов. (Не думал, что когда-нибудь придётся это кому-то писать)

Сейчас придёт Wolsh и всё вам расскажет, что да почему так.

P.S.
Я так понимаю, это вы после прочтения Колина Мука такое выдаёте? Кошмар)

Да, знаю что код ужасен. Но мне нужно обратиться к текстовому полю созданному в основном классе из другого класса. Как это можно реализовать, я не знаю, вот и спрашиваю. Смог только так.

Если создавать метод в основном классе, который будет отвечать за изменение текстового поля только. Но можно ли создавать экземпляр основного класса?

ivaniyses 13.08.2014 09:14

Эмм, мдауш код =)
И кстати, почему у вас в основном классе глобальные переменные объявлены без модификаторов доступа.
И инициализация этих же переменных должна быть в init()
Если хотите правильно создать чат, поищите в интернете, как это можно сделать, на эту тему уроков достаточно.


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

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