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

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

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

Регистрация: Nov 2007
Сообщений: 4
По умолчанию Передача Button-объекта параметром функции

Доброго времени суток!
Немного странная трабла:
Код:
function strReplace (strString:String, strFind:String, strReplace:String):String {
	var i:Number;
	var strRez:String = "";
	i = 0;
	while (i != strString.length) {
		if (strString.substr (i, strFind.length) == strFind) {
			strRez += strReplace;
			i += strReplace.length - 1;
		} else {
			strRez += strString.substr (i, strFind.length);
		}
		i += strFind.length;
	}
	return strRez;
}
function load_country_info (country:String, city:String, Btn:Button) {
	var oxml = new XML ();
	//
	ioTxt.text = "";
	oxml.ignoreWhite = true;
	oxml.onLoad = function (success:Boolean) {
		if (success) {
			var tx:String = "";
			var item = Object ();
			var i:Number = 0;
			var imgContainer:MovieClip = _root.createEmptyMovieClip ("imgContainer", _root.getNextHighestDepth ());
			var mclImg:MovieClipLoader = new MovieClipLoader ();
			// а вот и трабла присвоение координат выполняется, по мувик не передвигается по этим координатам.
			// но если выставитьстатичными цифрами эти координты, то всё ок
			// trace() левой и правой части равенства показывает одинаковые координаты
			// ВНИМАНИЕ ВОПРОС - почему не выполняется присваивание через Btn объект? может из-за его ссылочной сущности, но тогда как его обскакать?[/i][/color]
			imgContainer._x = Btn._x;
			imgContainer._y = Btn._y;
			while (i != this.firstChild.childNodes.length) {
				item = this.firstChild.childNodes[i];
				if (item.nodeName.toUpperCase () == country.toUpperCase ()) {
					strRepl.replace (",", "\n");
					tx += "Population: " + item.attributes["population"] + "\n";
					tx += "Capital: " + item.attributes["capital"] + "\n";
					tx += "Money: " + item.attributes["money"] + "\n";
					//tx+="USD Exchange rate: "+item.attributes["usdexchrate"]+"\n";
					tx += "Timezones: \n\t" + strReplace (item.attributes["timezones"], ",", "\n\t");
					strReplRez = null;
					strRepl = null;
					if (city != "") {
						var strImgDir:String = item.firstChild.attributes["dir"];
						var strImgName:String = "";
						var j:Number = 0;
						while (j != item.firstChild.childNodes.length) {
							if (item.firstChild.childNodes[j].attributes["name"].toUpperCase () == city.toUpperCase ()) {
								strImgName = item.firstChild.childNodes[j].attributes["img"];
								j = item.firstChild.childNodes.length - 1;
							}
							j++;
						}
						if (strImgName != "") {
							mclImg.loadClip (strImgDir + "/" + strImgName, imgContainer);
						} else {
							imgContainer.unloadMovie ();
						}
					} else {
						imgContainer.unloadMovie ();
					}
					i = this.firstChild.childNodes.length - 1;
				}
				i++;
			}
			ioTxt.text += tx;
			item = null;
			i = null;
			j = null;
			//imgContainer=null;
			//mclImg=null;
			//Btn=null;
		} else {
			ioTxt.text = "XML FILE NOT LOADED - ERROR.\nPlease contact with WEB-ADMINISTRATORS\n emails here";
		}
	};
	oxml.load ('./countries_caspian_info.xml');
	oxml = null;
}
/* COUNTRIES */
CASPIAN_MAP.onRollOver = function () {
	load_country_info ("", "", null);
};
KZ_button.onRollOver = function () {
	load_country_info ("KZ", "", null);
};
TU_button.onRollOver = function () {
	load_country_info ("TU", "", null);
};
AZ_button.onRollOver = function () {
	load_country_info ("AZ", "", null);
};
/* CITIES */
Atyrau_button.onRollOver = function () {
	load_country_info ("KZ", "Atyrau", this);
};
Baku_button.onRollOver = function () {
	load_country_info ("AZ", "Baku", this);
};


Последний раз редактировалось iNils; 10.11.2007 в 09:05.
Старый 10.11.2007, 08:54
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Для оформления своего кода, надо использовать теги [code][/code].
__________________
(и)Нильс.ru | Плагины для FlashDevelop


Последний раз редактировалось iNils; 10.11.2007 в 09:06.
Старый 10.11.2007, 09:07
4oFF вне форума Посмотреть профиль Отправить личное сообщение для 4oFF Найти все сообщения от 4oFF
  № 3  
Ответить с цитированием
4oFF

Регистрация: Nov 2007
Сообщений: 4
Да - сорри запарился. Зашёл чтобы подправить, а ужжо поздно. Спасиб.

Старый 10.11.2007, 09:08
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 4  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Вы везде в качестве But передаетет null, так откуда же координатам браться?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 10.11.2007, 12:37
4oFF вне форума Посмотреть профиль Отправить личное сообщение для 4oFF Найти все сообщения от 4oFF
  № 5  
Ответить с цитированием
4oFF

Регистрация: Nov 2007
Сообщений: 4
кнопка посылает свой объект
Код:
Atyrau_button.onRollOver = function () {
	load_country_info ("KZ", "Atyrau", this);
};
дело в том что чисто присвоения не происходит
могу исходник со всеми сопутсвующими фалами скинуть на мыло.

этот мув предназначен для отображения информации о стране(при наведении на территорию страны) либо высвечивает фото офиса (при наведении на город страны, в котором есть отделение - других городов просто не обозначено на карте мува). Следовательно null передается при наведении на страну, а this когда на город. почему так - потомучто данные беруться с одного xmlника и наведение обрабатывается одной и той же функции.

Работаю в CS3


Последний раз редактировалось etc; 11.11.2007 в 12:23.
Старый 11.11.2007, 12:23
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
4oFF, если надо что-то добавить, нужно редактировать пост, а не клепать кучу постов подряд.

Старый 14.11.2007, 16:33
4oFF вне форума Посмотреть профиль Отправить личное сообщение для 4oFF Найти все сообщения от 4oFF
  № 7  
Ответить с цитированием
4oFF

Регистрация: Nov 2007
Сообщений: 4
ok. no krome etix preduprezhdeniy idei est'? - ved' trabla realnaya...

Наконец-то!!! Ответ был передомной и настолько прост:

объект создается так:
Код:
var imgContainer:MovieClip = _root.createEmptyMovieClip ("imgContainer", _root.getNextHighestDepth ());
, следовательно и присвоение необходимо организовывать
Код:
//не так 
imgContainer._x=Btn._x;
//а вот так 
_root.imgContainer._x=_Btn._x;
__________________
Рулит тот, кто знает как оно работает


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

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

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


 


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


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