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

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

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

Регистрация: May 2007
Сообщений: 116
По умолчанию объявление функций MovieClip ( ошибка )

может ошибка в коде или я не там объявляю onRelease

код .as
Код:
class z_mapCellBuffer
{
	var _mc:MovieClip;
	
	
	function z_mapCellBuffer(  )
	{
		var temp_mc;
		var order;

		_mc = _root.createEmptyMovieClip( "_mc", _root.getNextHighestDepth() );

				order = 1;
				_mc.attachMovie( "cellButton", "cell" + order, order ); 
				temp_mc = _mc["cell" + order ];

				temp_mc.onRelease = function()
				{
					trace( temp_mc._scriptIndex );
				}
			
	}
	
	function fillCell( scriptCell:Number, bufferCell:Number, instance:String, position:String )
	{
		var temp_mc = _mc["cell" + bufferCell ];
		temp_mc._scriptIndex = scriptCell;
		trace( _mc["cell" + bufferCell ]._scriptIndex );
	}
}
Скрипт .fla

Код:
mcb = new z_mapCellBuffer();
mcb.fillCell( 1, 0, "", "" );
при запуске ролика trace "1"
при нажатии на клип "cell1" trace "undifined"
я что то не правильно сделал?

Старый 02.08.2007, 09:01
screamge вне форума Посмотреть профиль Отправить личное сообщение для screamge Посетить домашнюю страницу screamge Найти все сообщения от screamge
  № 2  
screamge
Ветеран форума
 
Аватар для screamge

Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
Да вообще класс на класс не похож. Переменные не надо объявлять в теле конструтора, а нужно выносить в приватные/публичные свойства класса. Название класса должно начинаться с прописной буквы. Мувиклипы так не создаются. Возвращающий тип не указан. Для получения/присвоения нужных значений существуют геттер/сеттеры.
По хорошему класс нужно переписывать.
Только вот что вы хотите сделать методом fillCell до меня честно не доходит.
__________________
Free-lance | Twitter | Me


Последний раз редактировалось screamge; 02.08.2007 в 09:04.
Старый 02.08.2007, 09:11
zafod вне форума Посмотреть профиль Отправить личное сообщение для zafod Найти все сообщения от zafod
  № 3  
zafod

Регистрация: May 2007
Сообщений: 116
да не важно зачем fillCell
temp_mc, order в теле конструктора живут столько, сколько сама функция, это не переменные класса
С прописной буквы? Это как то влияет на скорость или компиляцию?
Возвращающий тип, хм... ну вообще если тип Void, то его не нужно писать
По теме есть какие нибудь советы?

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

Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
А что вы хотите сделать то? Просто из вашего кода это совершенно не понятно. Хотите создать мувиклип через класс, назначить ему что-то, если да то что именно?
__________________
Free-lance | Twitter | Me


Последний раз редактировалось screamge; 02.08.2007 в 09:23.
Старый 02.08.2007, 09:37
zafod вне форума Посмотреть профиль Отправить личное сообщение для zafod Найти все сообщения от zafod
  № 5  
zafod

Регистрация: May 2007
Сообщений: 116
суть проста
Код:
var some_mc = new MovieClip();
some_mc._someParam = "something";
some_mc.onRelease = function()
{
   trace( this._someParam );
}
результат по нажатию на some_mc - trace "something"
Здесь есть сомнения? У меня нет. Так почему у меня в коде написано тоже самое а trace "undefined"

P.S. fillCell - клипу _mc.cell1._scriptIndex = "1";
далее _mc.cell1.onRelease выполняет trace _mc.cell1._scriptIndex
результат "undefined"

Старый 02.08.2007, 09:47
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 6  
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Цитата:
Сообщение от zafod
суть проста
Код:
var some_mc = new MovieClip();
some_mc._someParam = "something";
some_mc.onRelease = function()
{
   trace( this._someParam );
}
результат по нажатию на some_mc - trace "something"
Здесь есть сомнения? У меня нет.
А вы проделайте такой эксперимент. На что вы собрались нажимать?
Мувиклипы через new без хака не объявляются.

Старый 02.08.2007, 09:51
zafod вне форума Посмотреть профиль Отправить личное сообщение для zafod Найти все сообщения от zafod
  № 7  
zafod

Регистрация: May 2007
Сообщений: 116
да суть не в том что куда нажимать, а суть в коде.
Если на some_mc можно нажать, код onRelease выполниться, правильно? и трэйс нам выдаст "something".
мысли абстрактно...
Теперь код класса - там что не так, почему эта связка не выполняется?

Старый 02.08.2007, 09:53
zafod вне форума Посмотреть профиль Отправить личное сообщение для zafod Найти все сообщения от zafod
  № 8  
zafod

Регистрация: May 2007
Сообщений: 116
короче, долбите мозг мне не по теме.

Старый 02.08.2007, 10:08
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 9  
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Ладно, вот по теме:
Код:
temp_mc.onRelease = function(){
	trace( temp_mc );
	trace( this._scriptIndex );
}

Старый 02.08.2007, 10:35
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 10  
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Тема закрыта, а zafod получает второй плюс.
Ваша оценка комментариев никого не интересует, если вы не хотите учиться и понимать, как нужно делать, то это ваши проблемы. Ваш код совершенно ужасен, вам говорят, как нужно делать от и до, а вы упираетесь. Ваяйте свою хренотень дальше тогда и советов не ждите. С таким отношением к работе вам специалистом никогда не быть.

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

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

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


 


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


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