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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 28.12.2009, 19:28
Stanislavsky вне форума Посмотреть профиль Отправить личное сообщение для Stanislavsky Найти все сообщения от Stanislavsky
  № 1  
Ответить с цитированием
Stanislavsky
 
Аватар для Stanislavsky

Регистрация: Sep 2007
Адрес: 52° 31′ N, 13° 24′ O
Сообщений: 55
Attention Как выполнить снова коструктор класса?

Всем привет!

Создаю сайт.
Основной класс документа mainClass.as (там пишу весь код)

При запуске, с помощью конструктора класса, вылетают лого, меню, картинка и т.д.
При выборе пункта меню все плавно убирается и загружается, например, swf.
Хочу на лого повесить Listener "переход на главную". По логике должна выполняться функция public mainClass - являющаяся конструктором. Но ошибка 1067.

Подскажите, пожалуйста, как правильно? Спасибо

Старый 28.12.2009, 19:30
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 2  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Внутри конструктора прописать вызов метода, который выдвигает все меню, потом обращаться не к конструктору а к этому методу
__________________
тонкий тролль, осеянный благодатью

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

Регистрация: Sep 2007
Адрес: 52° 31′ N, 13° 24′ O
Сообщений: 55
О! спасибо. Так быстро! Буду пробовать!

пробую:
Код AS3:
public function mainClass()
{
     private function mainMenu():void
     {
     }
}
Я правильно понимаю?


Последний раз редактировалось Stanislavsky; 28.12.2009 в 19:49.
Старый 28.12.2009, 19:53
VVall вне форума Посмотреть профиль Отправить личное сообщение для VVall Найти все сообщения от VVall
  № 4  
Ответить с цитированием
VVall

Регистрация: Feb 2009
Сообщений: 1,195
Не надо объявлять функцию внутри функции. Просто напишите в том же классе новую отдельную функцию mainMenu, в которую перенесите весь код из конструктора. В конструктор вместо старого кода добавьте вызов этой новой функции, и также вызывайте её в нужном вам месте вместо конструктора.

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

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
Код AS3:
public function mainClass()
{
    mainMenu();
}
 
private function mainMenu():void
{
  // do something
}

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

Регистрация: Sep 2007
Адрес: 52° 31′ N, 13° 24′ O
Сообщений: 55
Цитата:
Сообщение от Hidest Посмотреть сообщение
Код AS3:
public function mainClass()
{
    mainMenu();
}
 
private function mainMenu():void
{
  // do something
}
я написал // do something два раза: в конструкторе и еще в методе - работает.

Как ВЫШЕ - не работает. Ошибка с аргументом. Думаю, что нужно совместить, чтоб первый раз загружалось по (не знаю какому событию), а второй раз по КЛИКу мыши

Старый 28.12.2009, 20:21
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 7  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Код:
 // do something
Это комментарий, он только для вас, для машины он смысловой нагрузки не несёт.

Если по клику мыши - нужно передавать аргумент.
Код AS3:
private function mainMenu(e:MouseEvent = null):void

Старый 28.12.2009, 20:34
Stanislavsky вне форума Посмотреть профиль Отправить личное сообщение для Stanislavsky Найти все сообщения от Stanislavsky
  № 8  
Ответить с цитированием
Stanislavsky
 
Аватар для Stanislavsky

Регистрация: Sep 2007
Адрес: 52° 31′ N, 13° 24′ O
Сообщений: 55
))))) я подразумевал код конечно. Сейчас попробую. Спасибо большое.
(e:MouseEvent = null) еще ни разу не использовал. Пошел читать.

Отлично! Работает!

Добавлено через 19 минут
а можно еще спросить:
если я новым методом например newMethod
создал на сцене новые обекта с помощью addChild(Text);как мне их в методе mainMenu удалить?
removeChild - ошибка.

переделал следующим образом:
Код AS3:
if (text_firma != null)
   {
     removeChild(text_firma);
   }
Это корректно?


Последний раз редактировалось Stanislavsky; 28.12.2009 в 21:39.
Старый 28.12.2009, 22:08
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 9  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Нет, это не корректно.
Во первых, классы пишутся с большой буквы, а переменные - с прописной.
Во вторых, text_firma != null - избыточно, пожалуй. Достаточно
Код AS3:
if (textFirma)
В третьих, вам никто не гарантирует, что text_firma лежит именно в этом контейнере.
Поэтому
Код AS3:
if (text_firma && contains(text_firma))

Старый 28.12.2009, 22:11
Stanislavsky вне форума Посмотреть профиль Отправить личное сообщение для Stanislavsky Найти все сообщения от Stanislavsky
  № 10  
Ответить с цитированием
Stanislavsky
 
Аватар для Stanislavsky

Регистрация: Sep 2007
Адрес: 52° 31′ N, 13° 24′ O
Сообщений: 55
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Нет, это не корректно.
Во первых, классы пишутся с большой буквы, а переменные - с прописной.
Запомню. Везде изменил. Спасибо за пример!


Последний раз редактировалось Stanislavsky; 28.12.2009 в 22:23.
Создать новую тему Ответ Часовой пояс GMT +4, время: 12:29.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
коструктор класса , сайт

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

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


 


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


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