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

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

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

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

В общем я новичок-дуб-дубом во Flash\AS3, поэтому время от времени возникают поистине эпические вопросы. Но сколько не читал форум и код опытных товарищей - на ответ не наткнулся. Итак:

Есть произвольный код для кнопки и мувиклипа:

Код AS3:
stop();
BTN_1.addEventListener(MouseEvent.MOUSE_CLICK, cl_BTN_1);
function cl_BTN_1(e:MouseEvent):void
 {
MC_1.play(); 
 }
Есть также 150 разнообразных ключевых кадров по всему проекту со своими кнопками и мувиклипами. На данный момент мне приходится вручную вставлять AS3 код в эти кадры и править названия кнопок и мувиков. Я уверен что то делаю не так и есть нормальный рациональный механизм. Какой?

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

блогер
Регистрация: Feb 2010
Адрес: MSK
Сообщений: 859
Записей в блоге: 3
Отправить сообщение для Genzo с помощью ICQ Отправить сообщение для Genzo с помощью Skype™
Цитата:
как писать код?
руками
Цитата:
Я уверен что то делаю не так и есть нормальный рациональный механизм. Какой?
ООП
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works.

Старый 04.10.2011, 16:44
baxok вне форума Посмотреть профиль Отправить личное сообщение для baxok Найти все сообщения от baxok
  № 3  
Ответить с цитированием
baxok

Регистрация: Sep 2011
Сообщений: 4
Спасибо, хоть и несколько грубо. Я Обязательно разберусь. Но пока не разобрался, прошу ответить касательно приведенного мной примера, ибо очень нужно применить прямо сегодня. Как упростить 150 конструкций типа:

кадр 1
Код AS3:
btn_N.addEventListener(MouseEvent.MOUSE_CLICK, cl_btn_N);
function cl_btn_N(e:MouseEvent):void
 {
mc_N.play(); 
 }
кадр 2
Код AS3:
btn_N+1.addEventListener(MouseEvent.MOUSE_CLICK, cl_btn_N+1);
function cl_btn_N+1(e:MouseEvent):void
 {
mc_N+1.play(); 
 }
и т.д.

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

Регистрация: Mar 2010
Адрес: 54.713862552265084 = 20.442724227905273
Сообщений: 449
Отправить сообщение для stweet с помощью Skype™
ушёл плакать.
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь!

Старый 04.10.2011, 16:57
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 5  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Здесь изначально все неправильно. Прийдется все и дальше вставлять вручную. Или снести все и написать заново, заранее предусмотрев все, что будет нужно, и использовать циклы для повторяющихся участков кода.

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

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Автор такой подход очень печален. Надеюсь научитесь.
По делу : если у вас ВСЕ кнопки находятся в 1 кадре, то код упростить можно, если все вРАЗНЫХ то никак.
Код AS3:
for(var i:int = 0 ; i < 100; i++)  {  btn_['N'+i].addEventListener('click',all) }
function all():void {
 
var name:String = e.currentTarget.name;
 
name = name.slice(name.indexOf('_') );
 
this['mc'+name].play();
 
}
__________________
Марк Tween

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

Регистрация: Sep 2011
Сообщений: 4
Дело в том что это мой Первый,очень Огромный и Очень Срочный проект. Приходится до некоторых вещей догадываться в середине разработки... особенно не имея опыта программирования... Идея с циклом понятна, но не вижу как ее можно применять в реальности: ведь по ходу создания так или иначе будут появляться новые задачи (читай - грубо говоря кнопки и мувики). Невозможно их предусмотреть в начале. Ну или так: в первом кадре кнопка переносит (GoToAndPlay) во второй, оттуда в третий и т.д. Уже цикла не получается?

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

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

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

Регистрация: Dec 2007
Адрес: Россия, Москва
Сообщений: 541
Отправить сообщение для TWETTI с помощью Skype™
Код в 1-ом кадре:
Код AS3:
import flash.events.MouseEvent;
 
stop();
 
addEventListener(MouseEvent.CLICK, onClickStage);
function onClickStage(event:MouseEvent):void
{
	switch (event.target.name)
	{
		case "b1":
			trace("button 1");
			gotoAndStop(2);
			break;
		case "b2":
			trace("button 2");
			gotoAndStop(2);
			break;
		case "b3":
			trace("button 3");
			gotoAndStop(1);
			break;
	}
}
В 1 кадре кнопка b1 и b2. В 2 кадре кнопка b3. Так сойдет?

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

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

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


 


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


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