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

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

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Сообщение от in4core Посмотреть сообщение
Костя по евентам не очень удобно я считаю делать строгую типизацию, можно конечно создать 101 публичную переменную, а можно 1 типа массива или объекта и в нем передавать кучу всего, чего надо, причем переменные могут быть разных типов. Конечно можно писать каждый раз a[0] as int например, но это так некошерно
Ну 101 это ты пергнул) У меня обычно может быть 3 - 5 разных типов. Для каждого можно сделать проверку. Зато будешь точно уверен что у тебя за данные пришли и как их обрабатывать. Когда получается так, что может быть у тебя там int, а может строка, а может вообще какая-то не известная зверушка, а обращение ко всем происходит одинаково - это проблемы архитектуры
__________________
Ко мне можно и нужно обращаться на ты)

Старый 04.10.2016, 11:02
grafillo! вне форума Посмотреть профиль Отправить личное сообщение для grafillo! Найти все сообщения от grafillo!
  № 12  
Ответить с цитированием
grafillo!

Регистрация: Sep 2011
Сообщений: 366
Дело в том что в первом случае оно работает без конвертации присваивается содержание текстового поля переменной типа нумбера
Код AS3:
var postLimitNumber:Number;
var succPostNumber:Number;
postWind.postLimit.text = 90;
postWind.postSucc.text = 0;
postLimitNumber = postWind.postLimit.text;
succPostNumber = postWind.postSucc.text;
во втором случае работает только! с кавычками и чтобы присвоить данные переменной нумбер нужно ихконвертировать
Код AS3:
var minNum:Number; 
var maxNum:Number;
minTxt.text = "30";
maxTxt.text = "60";
minNum =  Number(minTxt.text);
maxNum = Number(maxTxt.text)-minNum;
Магия какая-то либо свойства текстфилда, может быть там можно выставить что-то типа принимать только нумбер.


Последний раз редактировалось grafillo!; 04.10.2016 в 11:25.
Старый 04.10.2016, 11:43
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 13  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Я уже написал что там за магия. Уверен, что у этого объекта (может быть в кадре) есть код сеттера, внутри которого происходит конвертация
__________________
Ко мне можно и нужно обращаться на ты)

Старый 04.10.2016, 11:56
grafillo! вне форума Посмотреть профиль Отправить личное сообщение для grafillo! Найти все сообщения от grafillo!
  № 14  
Ответить с цитированием
grafillo!

Регистрация: Sep 2011
Сообщений: 366
я писал этот код от начала и до конца, я в своей жизни ни разу не использовал сеттеры!
код именно такой как я привёл без всяких конвертеров.
странное дело)

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Тогда выложи сюда свой файл.
Не верю я в такие чудеса. За 7 лет ниразу не сталкивался с тем, что можно тип Number назначить переменной с типом String без конвертации
__________________
Ко мне можно и нужно обращаться на ты)

Старый 04.10.2016, 12:21
grafillo! вне форума Посмотреть профиль Отправить личное сообщение для grafillo! Найти все сообщения от grafillo!
  № 16  
Ответить с цитированием
grafillo!

Регистрация: Sep 2011
Сообщений: 366
Код AS3:
package  {
	import flash.display.MovieClip;
	import flash.events.*;
	import flash.net.URLVariables;
	import flash.net.*;
	import flash.utils.Timer;
 
	public class post {
     var postWind:MovieClip;
	 var searchWind:MovieClip;
	 var vars:URLVariables = new URLVariables;
	 var token:String;
	 var requestmes:URLRequest;
	 var loader:URLLoader ;
	 var arrayClub:Array;
	 var i:Number;
	 var time:Number = 5000;
	 var _timer:Timer;//= new Timer(time);
 
 
	 var postLimitNumber:Number;
	 var succPostNumber:Number;
 
		public function post(postwind:MovieClip,searchwind:MovieClip) {
			// constructor code
 
 
 
 
			postwind.postingBtn.addEventListener(MouseEvent.CLICK, posting);
			postwind.clearBtn.addEventListener(MouseEvent.CLICK, clearing);
			postwind.stopBtn.addEventListener(MouseEvent.CLICK, stopping);
			postWind = postwind;
			postWind.postLimit.text = 90;
			postWind.postSucc.text = 0;
			//token = Token;
			searchWind = searchwind;
 
 
 
 
 
 
 
		}
	function changeToken(Token:String){
		token = Token;
				}
 
	function posting(e:MouseEvent){
 
		postWind.postSucc.text = 0;
		postLimitNumber = postWind.postLimit.text;
		succPostNumber = postWind.postSucc.text;
 
 
		token= searchWind.cookieWindow.text;
 
	time = postWind.timeMsg.text*1000;
 
	_timer = new Timer(time);
	_timer.addEventListener(TimerEvent.TIMER, sendRequest);
 
 
	arrayClub = postWind.postClub.text.match(/(?<=club)(\d+)/g);//\s/g);
	i=0;
 
	requestmes  = new URLRequest;
	requestmes.url = 'https://api.vk.com/method/groups.getById.xml?';
	requestmes.method = URLRequestMethod.POST;
 
	loader= new URLLoader();
	loader.dataFormat = URLLoaderDataFormat.TEXT;
	loader.addEventListener(Event.COMPLETE, onLoad);
	_timer.start();
	postWind.status.htmlText= '<font color="#009933">Идёт постинг';
 
 
	}//posting
 
 
 
function sendRequest(e:TimerEvent){
	vars = new URLVariables("group_id="+arrayClub[i]+"&access_token="+token+"&fields=can_post&v=5.52");
 
	requestmes.data = vars;
	loader.load(requestmes);
 
 
 
 
 
	}	//sendReq
 
 
function onLoad (e:Event){
 
	_timer.stop();
	trace(e.target.data);
	//проверить на возможность
	//запостить
	var resp:XML = XML(e.target.data);
	trace("resp.group.can_post="+resp.group.can_post);
	if(resp.group.can_post == 0){
 
		postWind.otchetUnsuccWin.htmlText +='<a href="https://vk.com/club'+arrayClub[i]+'">https://vk.com/club'+arrayClub[i]+'</a><font color="#ff0000">  Стена закрыта</font>';
		counter();	
 
		}else if(resp.error_code>0){
 
			postWind.otchetUnsuccWin.htmlText +='<a href="https://vk.com/club'+arrayClub[i]+'">https://vk.com/club'+arrayClub[i]+'</a><font color="#ff0000"> '+ resp.error_msg +'</font>';
			//trace(resp.error_msg);
			counter();	
			}else  if (resp.group.can_post == 1){
 
							//trace(resp.group.can_post);
							checkReadyPost();
				// вставить првоерку
				} else {
 
					postWind.otchetUnsuccWin.htmlText +='<a href="https://vk.com/club'+arrayClub[i]+'">https://vk.com/club'+arrayClub[i]+'</a><font color="#ff0000"> Неизвестная ошибка</font>';
					counter();
					}
 
 
 
 
	}//on load
 
function sendPost(){
 
	trace ("sendPost");
	var sendpost:URLRequest;
	sendpost  = new URLRequest;
	sendpost.url = 'https://api.vk.com/method/wall.post.xml?';
	sendpost.method = URLRequestMethod.POST;
 
	var loaderPost:URLLoader ;
	loaderPost= new URLLoader();
	loaderPost.dataFormat = URLLoaderDataFormat.TEXT;
	loaderPost.addEventListener(Event.COMPLETE, onsendPost);
 
 
	vars = new URLVariables("owner_id=-"+arrayClub[i]+"&message="+postWind.postMessage.text+"&access_token="+token+"&fields=can_post&v=5.52");
 
	sendpost.data = vars;
	loaderPost.load(sendpost);  
 
	   } //sendPost
 
function onsendPost(e:Event){
 
	trace (e.target.data);
	var resp:XML = XML(e.target.data);
	if(resp.error_code>0){
 
			postWind.otchetUnsuccWin.htmlText +='<a href="https://vk.com/club'+arrayClub[i]+'"><font color="#0000ff">https://vk.com/club'+arrayClub[i]+'</a></font><font color="#ff0000"> '+ resp.error_msg +'</font>'
			//trace(resp.error_msg);
			} 
	if(resp.post_id>0){
 
		postWind.otchetSuccWin.htmlText +='<a href="https://vk.com/club'+arrayClub[i]+'"><font color="#0000ff">https://vk.com/club'+arrayClub[i]+'</a></font><font color="#00CC66"> Успешно добавлен </font>'
		succPostNumber +=1;
		postWind.postSucc.text = succPostNumber;
 
		}	
 
		counter();	
 
	}	  
 
function counter (){
 
	i++;
	if(i<arrayClub.length && succPostNumber<postLimitNumber){
				_timer.start();
		}else{
			_timer.stop();
			postWind.status.htmlText= '<font color="#ff0000">Постинг завершён';
			}
 
	}
 
function checkReadyPost(){
			trace("checkReadyPost"+arrayClub[i]);
			vars = new URLVariables("owner_id=-"+arrayClub[i]+"&count=5");
			var respCheck:String;
			var regular:RegExp = /(trollchat)/g;
			var resultate:String;
			var requestmesCheck:URLRequest;
			var loaderCheck:URLLoader;
 
			requestmesCheck  = new URLRequest;
			requestmesCheck.url = 'https://api.vk.com/method/wall.get.xml?';
			requestmesCheck.method = URLRequestMethod.POST;
			requestmesCheck.data = vars;
 
 
			loaderCheck= new URLLoader();
			loaderCheck.dataFormat = URLLoaderDataFormat.TEXT;
			loaderCheck.addEventListener(Event.COMPLETE, onLoadWall);
		    loaderCheck.load(requestmesCheck);
 
 
			function onLoadWall (e:Event){
			respCheck = e.target.data;
			trace(e.target.data);
			resultate = regular.exec(respCheck);
			if (resultate==null){
 
						sendPost();
						trace("resultate=null");
 
						}else{
							postWind.otchetSuccWin.htmlText +='<a href="https://vk.com/club'+arrayClub[i]+'">https://vk.com/club'+arrayClub[i]+'</a><font color="#ff9933"> На стене уже опубликовано такое сообщение</font>'
							counter();
							}
 
			}
 
 
 
 
	}	
 
function clearing(e:Event){
	postWind.otchetUnsuccWin.htmlText = "";
	postWind.otchetSuccWin.htmlText = "";
 
}
function stopping (e:Event){
 
	_timer.stop();
	postWind.status.htmlText= '<font color="#ff0000">Постинг завершён';
 
}
 
	}//class
 
} // package

Старый 04.10.2016, 12:41
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 17  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Костян - если наверно работать в команаде флешеров - это недопустимо будет, а если самому писать, то ты и так прекрасно знаешь или можешь посмотреть чего там летит инт или стринг. За всю историю кодинга помню максимум 3-5 случаев когда на это нарывался, не более, чтобы об этом трубить во все углы.

По поводу ТС - x.y.c.text = 90. Прокатывает , потому что с - это только для вас текстФилд, а для компилятора это обжект

Добавлено через 31 секунду
А вот x.text = 90 - не прокатывает - потому, что тут явное указание текстфилда
__________________
Марк Tween

Старый 04.10.2016, 13:00
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 18  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
По поводу ТС - x.y.c.text = 90. Прокатывает , потому что с - это только для вас текстФилд, а для компилятора это обжект
Да, скорее всего у него так и получлось
__________________
Ко мне можно и нужно обращаться на ты)

Старый 04.10.2016, 13:00
grafillo! вне форума Посмотреть профиль Отправить личное сообщение для grafillo! Найти все сообщения от grafillo!
  № 19  
Ответить с цитированием
grafillo!

Регистрация: Sep 2011
Сообщений: 366
что такое хус, поясните для начинающего программиста?

Старый 04.10.2016, 13:37
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 20  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Ох...этот хус, вечерним утром...
__________________
Марк Tween

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

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

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


 


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


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