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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 04.07.2015, 09:46
alexandrratush вне форума Посмотреть профиль Отправить личное сообщение для alexandrratush Найти все сообщения от alexandrratush
  № 11  
Ответить с цитированием
alexandrratush
 
Аватар для alexandrratush

Регистрация: Jul 2013
Адрес: Днепр
Сообщений: 529
Отправить сообщение для alexandrratush с помощью ICQ Отправить сообщение для alexandrratush с помощью Skype™
Код в студию.

Старый 05.07.2015, 18:32
60reg вне форума Посмотреть профиль Отправить личное сообщение для 60reg Найти все сообщения от 60reg
  № 12  
Ответить с цитированием
60reg
 
Аватар для 60reg

Регистрация: Aug 2014
Сообщений: 45
Код AS3:
Core.Server("getInfo", '0', onGetInfo, onError);
function onGetInfo (data:XML) {
XML = new XML(data);
money.text = String(xml.user.diamond);
}


Последний раз редактировалось udaaff; 05.07.2015 в 22:28.
Старый 05.07.2015, 19:19
alexandrratush вне форума Посмотреть профиль Отправить личное сообщение для alexandrratush Найти все сообщения от alexandrratush
  № 13  
Ответить с цитированием
alexandrratush
 
Аватар для alexandrratush

Регистрация: Jul 2013
Адрес: Днепр
Сообщений: 529
Отправить сообщение для alexandrratush с помощью ICQ Отправить сообщение для alexandrratush с помощью Skype™
Из вашего кода видно что вы каждый раз вызываете метод на сервере? Я прав? Вопрос был в этом?

Старый 05.07.2015, 21:28
60reg вне форума Посмотреть профиль Отправить личное сообщение для 60reg Найти все сообщения от 60reg
  № 14  
Ответить с цитированием
60reg
 
Аватар для 60reg

Регистрация: Aug 2014
Сообщений: 45
Да в этом.

Старый 06.07.2015, 19:08
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 15  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Примерно так

Main.as
Код AS3:
package
{
	import flash.display.Sprite;
 
	import model.AppModel;
 
	import view.View;
 
	public class Main extends Sprite
	{
		private var _app:AppModel;
		private var _view:View;
 
		public function Main()
		{
			_app = new AppModel(); // создаем модель приложения
			_view = new View( _app ); // создаем вьюшку и передаем в неё ссылку на модель
 
			addChild( _view ); // добавляем вьюшку на сцену
 
			// получаем от сервера данные
			Core.Server("getInfo", '0', app.onGetInfo , onError);
		}
	}
}
model.AppModel.as
Код AS3:
package model
{
	public class AppModel extends BaseModel
	{
		private var _user:UserModel;
 
		public function AppModel()
		{
			super();
 
			_user = new UserModel(); // создаем модель юзера
		}
 
		public function get user():UserModel
		{
			return _user; // геттер модели юзера
		}
 
		public function onGetInfo(data:XML):void {
 
			var xml:XML = new XML(data);
 
			_user.diamond = xml.user.diamond; // отправляем в модель полученное значение
		}
 
	}
}
model.UserModel.as
Код AS3:
package model
{
	public class UserModel extends BaseModel
	{
		public static var UPDATE_DIAMOND:String = 'UPDATE_DIAMOND'; // идентификатор свойства
 
		public function UserModel(){
 
			super();
 
		}
 
		public function get diamond():Number
		{
			return _diamond; // публичный геттер значения диамантов
		}
 
		public function set diamond(value:Number):void {
 
			if (_diamond==value) return; // если старое значение равно новому, не делаем никаких действий
 
			_diamond = value; // записываем 
 
			updateRegister( UserModel.UPDATE_DIAMOND, _diamond ); // выполняем метод BaseModel.updateRegister которому передаем тип свойства и значение
		}
 
		private var _diamond:Number = 0;
	}
}
view.View.as
Код AS3:
package view
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.text.TextField;
 
	import events.UpdateEvent;
 
	import model.AppModel;
	import model.UserModel;
 
	public class View extends Sprite
	{
		private var _app:AppModel;
		private var _userMoney:TextField;
 
		public function View(app:AppModel)
		{
			super();
 
			_app = app; // сохраняем ссылку на модель приложения
 
			createView(); // создаем вьюшку
 
			drawUserMoney( _app.user.diamond ); // принудительно обновляем значение
 
			_app.user.addEventListener( UpdateEvent.UPDATE, updateHandler ); // слушаем обновления данных UserModel 
		}
 
		private function createView():void
		{
			_userMoney = new TextField();
 
			addChild( _userMoney );
		}
 
		protected function updateHandler(event:UpdateEvent):void
		{
			// обработчик событий обновления данных
			switch (event.property) 
			{	
				// если это диаманты пользователя
				case UserModel.UPDATE_DIAMOND:
					drawUserMoney( event.data ); // берём данные из события !!! преимущественный способ
					// или
					drawUserMoney( _app.user.diamond ); // берём данные из ссылки модели
					break;
 
				default:
 
					break;
			}
		}
 
		private function drawUserMoney(diamond:Number):void
		{
			_userMoney.text = String( diamond );
		}
	}
}
model.BaseModel.as
Код AS3:
package model
{
	import flash.events.EventDispatcher;
 
	import events.UpdateEvent;
 
	public class BaseModel extends EventDispatcher
	{
		public function BaseModel()
		{
			super();
		}
 
		protected function updateRegister(property:String, data:*=null):void {
			dispatchEvent(new UpdateEvent(property, data) );	
		}
	}
}
events.UpdateEvent.as
Код AS3:
package events
{
	import flash.events.Event;
 
	public class UpdateEvent extends Event
	{
		public static var UPDATE:String = 'Update_data';
		private var _property:String;
		private var _data:*;
 
		public function UpdateEvent(property:String,data:*=null)
		{
			super(UPDATE, true, false);
 
			_property = property;
 
			_data = data;
		}
 
		public function get property():String
		{
			return _property;
		}
 
		public function get data():*
		{
			return _data;
		}
 
		override public function clone():Event {
			return new UpdateEvent(property,data);
		}
 
	}
}
__________________
return this...


Последний раз редактировалось AlexCooper; 06.07.2015 в 19:26.
Создать новую тему Ответ Часовой пояс GMT +4, время: 01:44.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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