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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 15.02.2011, 18:14
dream'r вне форума Посмотреть профиль Отправить личное сообщение для dream'r Посетить домашнюю страницу dream'r Найти все сообщения от dream'r
  № 1  
Ответить с цитированием
dream'r

Регистрация: Nov 2000
Адрес: russia, moscow
Сообщений: 21
Отправить сообщение для dream'r с помощью ICQ
По умолчанию проблема с функциями и проксёй

Делаю всё сейчас на АС2.0
Пишу в классах
Использую com.person13.util.Proxy

проблема в следующем. создаю в цикле кнопки, для каждой назначаю действие при нажатии. должна по идее срабатывать строка :
Код AS1/AS2:
_root.osnMenu["menuText" + i].onRelease = Proxy.create(this, changeLanguage, what_load);
не могу понять в чём проблема может быть ;(
класс имортирован, функция вызываемая существует, параметр тоже. функция публичная.

если не использую проксю, а пишу просто ...onRelease = function(){ changeLanguage(what_load)}; то тоже ни чего не происходит. не могу понять что случилось, что не так идёт. Ошибок не выводится ни каких ;( тоесть даже функция не вызывается, потому что я там трейс поставил - она бы хоть показала, что работает, а так - пусто ;-( ((((
через прокси пробовал вызвать совершенно другую функцию в которой сменяется цвет кнопки - не работает.

_root.osnMenu["menuText" + i] - создаётся всё, переменная работает адекватно.

пожалуйста, подскажите.
__________________
весь хлеб свежий

Старый 15.02.2011, 18:24
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 2  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Ctrl + Shift + Enter — посмотрите структуру флэшки, переменные, может поможет.

Ну и трэйсов побольше.

Зачем вам обращение через _root, если вы все в классах пишите?
__________________
hauts.ru

Старый 15.02.2011, 19:14
dream'r вне форума Посмотреть профиль Отправить личное сообщение для dream'r Посетить домашнюю страницу dream'r Найти все сообщения от dream'r
  № 3  
Ответить с цитированием
dream'r

Регистрация: Nov 2000
Адрес: russia, moscow
Сообщений: 21
Отправить сообщение для dream'r с помощью ICQ
дебаг ни чего определённого не дал ;(
трейсы ... сделал ...onRelease(trace(имя_функции)) - выводит undefined .. понятия не имею почему не находит, ведь функция создана.

Добавлено через 1 час 24 минуты
И не понимаю почему при наведении функция срабатывает (не та, которая вызывается через proxy.create а , например, твинлайт)... прошу, пожалуйста подскажите, может я что-то не так делаю?(
в классах пишу второй раз в жизни. до этого работал по большей части с кадрами. в as бывало только писал код, чтобы не наводить путаницу в кадрах.
__________________
весь хлеб свежий

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

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Побольше кода покажите?
__________________
hauts.ru

Старый 15.02.2011, 21:27
dream'r вне форума Посмотреть профиль Отправить личное сообщение для dream'r Посетить домашнюю страницу dream'r Найти все сообщения от dream'r
  № 5  
Ответить с цитированием
dream'r

Регистрация: Nov 2000
Адрес: russia, moscow
Сообщений: 21
Отправить сообщение для dream'r с помощью ICQ
Код AS1/AS2:
private function generateOsnMenu(def_lang) 
	{		
		_root.createEmptyMovieClip("osnMenu", _root.getNextHighestDepth());
		_root.osnMenu._y = 18;
		_root.osnMenu._x = _root.rd_logo._x + _root.rd_logo._width + 130;
		var menupunkts:Number = _root.menuXML.firstChild.childNodes.length;
 
		for(i = 0; i < menupunkts; i++){		
			var osnmenu:MovieClip = _root.osnMenu.attachMovie("menuText", "menuText"+i, _root.osnMenu.getNextHighestDepth());
			osnmenu.punktText.autoSize = true;
			osnmenu.punktText.htmlText = true;
 
			var title = _root.menuXML.firstChild.childNodes[i].attributes["title_ru"];
			osnmenu.punktText.htmlText = title;
 
			var what_load = _root.menuXML.firstChild.childNodes[i].attributes["what_load"];
 
			osnmenu._y = 0;
			if(i == 0){
				osnmenu._x = 0;
			}
			else{
				osnmenu._x = _root.osnMenu["menuText"+(i-1)]._x + _root.osnMenu["menuText"+(i-1)]._width + 40;
			}
 
			osnmenu.onRollOver = function() 
			{
				TweenMax.to(this.punktText, 0.5, {tint:"0x000000", ease:Circ.easeOut});
			}
			osnmenu.onRollOut = _root.osnMenu["menuText"+i].onReleaseOutside = function(){
				TweenMax.to(this.punktText, 0.5, {tint:"0x838383", ease:Circ.easeOut});
			}
			osnmenu.onRelease =  Proxy.create(this, gotoRazdel);
		}
	}
 
	private function gotoRazdel():Void 
	{
		trace("WHAT LOAD ");
	}
}
__________________
весь хлеб свежий

Старый 15.02.2011, 21:50
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 6  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
А так?
Код AS1/AS2:
private var menuRollOverState:Object;
private var menuRollOutState:Object;
private function generateOsnMenu(def_lang) {
	menuRollOverState = {tint:"0x000000", ease:Circ.easeOut, overwrite : true};
	menuRollOutState = {tint:"0x838383", ease:Circ.easeOut, overwrite : true};
 
	_root.createEmptyMovieClip("osnMenu",_root.getNextHighestDepth());
	_root.osnMenu._y = 18;
	_root.osnMenu._x = _root.rd_logo._x+_root.rd_logo._width+130;
	var menupunkts:Number = _root.menuXML.firstChild.childNodes.length;
 
	for (i=0; i<menupunkts; i++) {
		var osnmenu:MovieClip = _root.osnMenu.attachMovie("menuText", "menuText"+i, _root.osnMenu.getNextHighestDepth());
		osnmenu.punktText.autoSize = true;
		osnmenu.punktText.htmlText = true;
 
		var title = _root.menuXML.firstChild.childNodes[i].attributes["title_ru"];
		osnmenu.punktText.htmlText = title;
 
		var what_load = _root.menuXML.firstChild.childNodes[i].attributes["what_load"];
 
		osnmenu._y = 0;
		if (i == 0) {
			osnmenu._x = 0;
		} else {
			osnmenu._x = _root.osnMenu["menuText"+(i-1)]._x+_root.osnMenu["menuText"+(i-1)]._width+40;
		}
		osnmenu.onRollOver = function() {
			TweenMax.to(this.punktText,0.5,menuRollOverState);
		};
		osnmenu.onRollOut = _root.osnMenu["menuText"+i].onReleaseOutside=function () {
			TweenMax.to(this.punktText,0.5,menuRollOutState);
		};
		osnmenu.onRelease = Proxy.create(this, menuItemRelease);
		// osnmenu.onRelease = function(){trace(this)};
	}
}
public function menuItemRelease():Void {
	trace("WHAT LOAD ");
}
__________________
hauts.ru

Старый 15.02.2011, 22:37
dream'r вне форума Посмотреть профиль Отправить личное сообщение для dream'r Посетить домашнюю страницу dream'r Найти все сообщения от dream'r
  № 7  
Ответить с цитированием
dream'r

Регистрация: Nov 2000
Адрес: russia, moscow
Сообщений: 21
Отправить сообщение для dream'r с помощью ICQ
к большому сожалению - не работает ;(
если писать тоже самое, что у меня было в кадрах - оно будет работать. вопрос - почему блин в классе не работает. ;-(

Добавлено через 14 минут
Вобще очень странно зачем вы заменили что-то в твинмаксе? при наведении у меня всё отлично работало. А не работало в onRelease.
__________________
весь хлеб свежий

Старый 15.02.2011, 23:05
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 8  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Просто наугад вынес объекты с нужными свойствами. Удобнее менять будет.)
__________________
hauts.ru

Старый 15.02.2011, 23:11
dream'r вне форума Посмотреть профиль Отправить личное сообщение для dream'r Посетить домашнюю страницу dream'r Найти все сообщения от dream'r
  № 9  
Ответить с цитированием
dream'r

Регистрация: Nov 2000
Адрес: russia, moscow
Сообщений: 21
Отправить сообщение для dream'r с помощью ICQ
;-( жаль, что ваши правки не привели к правильной работе кода... может можете сказать, что это может быть? просто я говорю - в кадрах этот код заработал бы 100%. в классе - не работает, причину не понимаю.
__________________
весь хлеб свежий

Старый 15.02.2011, 23:20
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 10  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Честно скажу — я не знаю.
__________________
hauts.ru

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

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

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


 


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


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