Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.08.2014, 01:45
Void вне форума Посмотреть профиль Отправить личное сообщение для Void Найти все сообщения от Void
  № 1  
Ответить с цитированием
Void

Регистрация: May 2014
Сообщений: 26
По умолчанию Помощь в оптимизирование кода

Есть 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, "Изменение текста");
		}
 
	}
}

Старый 11.08.2014, 03:02
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 2  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,921
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Зачем оптимизировать то, что изначально неправильно построено?
Насчёт оптимизации, из-за ошибок и сбитого форматирования глаза не могут сконцентрироваться на коде.
Ещё, неплохо бы ещё почитать про конвенции.

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

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

P.S.
Я так понимаю, это вы после прочтения Колина Мука такое выдаёте? Кошмар)
__________________
There is no thing in this world that is not simple.

Старый 12.08.2014, 22:27
Void вне форума Посмотреть профиль Отправить личное сообщение для Void Найти все сообщения от Void
  № 3  
Ответить с цитированием
Void

Регистрация: May 2014
Сообщений: 26
Цитата:
Сообщение от SuriTheAngel Посмотреть сообщение
Зачем оптимизировать то, что изначально неправильно построено?
Насчёт оптимизации, из-за ошибок и сбитого форматирования глаза не могут сконцентрироваться на коде.
Ещё, неплохо бы ещё почитать про конвенции.

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

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

P.S.
Я так понимаю, это вы после прочтения Колина Мука такое выдаёте? Кошмар)
Да, знаю что код ужасен. Но мне нужно обратиться к текстовому полю созданному в основном классе из другого класса. Как это можно реализовать, я не знаю, вот и спрашиваю. Смог только так.

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

Старый 13.08.2014, 09:14
ivaniyses вне форума Посмотреть профиль Отправить личное сообщение для ivaniyses Найти все сообщения от ivaniyses
  № 4  
Ответить с цитированием
ivaniyses
[+1.4 08.02.14]
 
Аватар для ivaniyses

Регистрация: Dec 2013
Адрес: Барабинск
Сообщений: 137
Отправить сообщение для ivaniyses с помощью Skype™
Эмм, мдауш код =)
И кстати, почему у вас в основном классе глобальные переменные объявлены без модификаторов доступа.
И инициализация этих же переменных должна быть в init()
Если хотите правильно создать чат, поищите в интернете, как это можно сделать, на эту тему уроков достаточно.
__________________
trace("Я нуб");

Создать новую тему Ответ Часовой пояс GMT +4, время: 22:04.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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