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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 16.11.2010, 14:58
DDcH вне форума Посмотреть профиль Отправить личное сообщение для DDcH Найти все сообщения от DDcH
  № 1  
Ответить с цитированием
DDcH
[+1.3 07.08.08]

Регистрация: Jul 2008
Сообщений: 40
Attention Переделываю стандартный сэмпл Menu Flash cs5 - Возникла Ошибка

Нужно было дабовить ещё один пункт (было 3 стало 4)
Все сделал аккуратно добавил на примере существуещего и обьекты и код.

Но выдает ошибку:

Код:
TypeError: Error #1010: Термин не определен и не имеет свойств.
	at banner1_fla::MainTimeline/highlightBtn()
	at banner1_fla::MainTimeline/overBtn()
а в дебагере выбает:
Код:
TypeError: Error #1010: Термин не определен и не имеет свойств.
	at banner1_fla::MainTimeline/highlightBtn()[banner1_fla.MainTimeline::frame1:211]
	at banner1_fla::MainTimeline/overBtn()[banner1_fla.MainTimeline::frame1:52]

Вот исходник и что получилось:

banner1.swf
banner1.rar

В архитектуре я не селен но все внутренние названия и общие названия даже слои и распределение в директории библиотеки сделал аналогично. Скажите как исправить. Потомучто понять я не в силах это, а задача наверняка простая.

И еще прикреплю исходник который был вначале
menu.rar

Старый 16.11.2010, 15:25
bav вне форума Посмотреть профиль Отправить личное сообщение для bav Найти все сообщения от bav
  № 2  
Ответить с цитированием
bav
 
Аватар для bav

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
К сожалению не могу посмотреть исходники, ибо использую CS4. В целом же можно использовать следующий метод. Смотрите строчку кода номер 211 в первом кадре, видите, какие там упоминаются переменные, методы, свойства. Потом, строчкой выше добавляете необходимое количество вызовов trace(), чтобы увидеть что же из всего того, что вы увидели в строчке номер 211 равно undefined. Потом думаете, и ищите в коде, почему же оно это самое до сих пор не определено.

P.S. Попробуйте в следующий раз не писать в кадрах, если используете AS3.
P.P.S. Господа, имеющие CS5, будьте добры, конкретизируйте на основании исходников.


Последний раз редактировалось bav; 16.11.2010 в 15:28.
Старый 16.11.2010, 22:00
DDcH вне форума Посмотреть профиль Отправить личное сообщение для DDcH Найти все сообщения от DDcH
  № 3  
Ответить с цитированием
DDcH
[+1.3 07.08.08]

Регистрация: Jul 2008
Сообщений: 40
Код AS1/AS2:
//The main menu's instance name is yourMenu. 
//Find and replace yourMenu to match that of your menu instance.
 
stop();
var btnNum:int;
var highlightNum:int = 1;
 
var menu1Open:Boolean = false;
var menu2Open:Boolean = false;
var menu3Open:Boolean = false;
var menu4Open:Boolean = false;
 
 
 
var bg:MovieClip = new MovieClip();
bg.graphics.beginFill(0x999999, 1); 
bg.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
bg.graphics.endFill(); 
bg.alpha = 0;
yourMenu.addChildAt(bg, 0);
 
//on mouse over menus: set btn number, highlight, open menu, close other menus
stage.addEventListener(MouseEvent.MOUSE_OVER, overBtn);
function overBtn(evt:MouseEvent):void {
	switch (evt.target) {
		case yourMenu.menu1_btn :
			btnNum=1;
			highlightBtn();
			openMenu();
			menu1Open = true;
			closeOtherMenus();
			break;
 
		case yourMenu.menu2_btn  :
			btnNum=2;
			highlightBtn();
			openMenu();
			menu2Open = true;
			closeOtherMenus();
			break;
 
		case yourMenu.menu3_btn  :
			btnNum=3;
			highlightBtn();
			openMenu();
			menu3Open = true;
			closeOtherMenus();
			break;
 
		case yourMenu.menu4_btn  :
			btnNum=4;
			highlightBtn();
			openMenu();
			menu4Open = true;
			closeOtherMenus();
			break;
 
	}
};
 
//when user mouse leaves a button, set the highlight
stage.addEventListener(MouseEvent.MOUSE_OUT, outBtn);
function outBtn(evt:MouseEvent):void {
	switch (evt.target) {
		case yourMenu.menu1_btn :
			highlightNum=1;
			break;
 
		case yourMenu.menu2_btn  :
			highlightNum=2;
			break;
 
		case yourMenu.menu3_btn  :
			highlightNum=3;
			break;
 
		case yourMenu.menu4_btn  :
			highlightNum=4;
			break;
 
	}
};
 
//mouse out of drop-down, ensure all menus close
bg.addEventListener(MouseEvent.MOUSE_OVER, leaveMenu);
function leaveMenu(evt:MouseEvent):void{
	if(bg.hitTestPoint(mouseX, mouseY, true)){
		closeMenu();
		menu1Open = false;
		menu2Open = false;
		menu3Open = false;
		menu4Open = false;
	}
 
}
 
//functions to open and close menus
function openMenu():void {
	yourMenu.menu_tween.menu_down.addTarget(yourMenu.getChildByName("menu" + btnNum), 1);
}
 
function closeMenu():void {
	yourMenu.menu_tween.menu_up.addTarget(yourMenu.getChildByName("menu" + btnNum), 1);
}
 
//close menus other than the current one
function closeOtherMenus():void {
	if(btnNum == 1 && menu2Open){
		yourMenu.menu_tween.menu_up.addTarget(yourMenu.menu2, 1);
		menu2Open = false;
	}
	if(btnNum == 1 && menu3Open){
		yourMenu.menu_tween.menu_up.addTarget(yourMenu.menu3, 1);
		menu3Open = false;
		}
	if(btnNum == 1 && menu4Open){
		yourMenu.menu_tween.menu_up.addTarget(yourMenu.menu4, 1);
		menu4Open = false;
		}
 
 
 
 
	if(btnNum==2 && menu1Open){
		yourMenu.menu_tween.menu_up.addTarget(yourMenu.menu1, 1);
		menu1Open = false;
	}
	if(btnNum==2 && menu3Open){
		yourMenu.menu_tween.menu_up.addTarget(yourMenu.menu3, 1);
		menu3Open = false;
	}
	if(btnNum==2 && menu4Open){
		yourMenu.menu_tween.menu_up.addTarget(yourMenu.menu4, 1);
		menu4Open = false;
	}
 
 
 
 
	if(btnNum==3 && menu1Open){
		yourMenu.menu_tween.menu_up.addTarget(yourMenu.menu1, 1);
		menu1Open = false;
	}
	if(btnNum==3 && menu2Open){
		yourMenu.menu_tween.menu_up.addTarget(yourMenu.menu2, 1);
		menu2Open = false;
	}
	if(btnNum==3 && menu4Open){
		yourMenu.menu_tween.menu_up.addTarget(yourMenu.menu4, 1);
		menu4Open = false;
	}
 
 
 
 
	if(btnNum==4 && menu1Open){
		yourMenu.menu_tween.menu_up.addTarget(yourMenu.menu1, 1);
		menu1Open = false;
	}
	if(btnNum==4 && menu2Open){
		yourMenu.menu_tween.menu_up.addTarget(yourMenu.menu2, 1);
		menu2Open = false;
	}
	if(btnNum==4 && menu3Open){
		yourMenu.menu_tween.menu_up.addTarget(yourMenu.menu3, 1);
		menu3Open = false;
	}
 
 
 
};
 
//adds animation based on current and previous button
function highlightBtn():void {
 
	if(btnNum == 1 && highlightNum == 2){
		yourMenu.highlight_tween.two_one.addTarget(yourMenu.highlight_mc, 1);
	}
	if(btnNum == 1 && highlightNum ==3){
		yourMenu.highlight_tween.three_one.addTarget(yourMenu.highlight_mc, 1);
	}
	if(btnNum == 1 && highlightNum ==4){
		yourMenu.highlight_tween.four_one.addTarget(yourMenu.highlight_mc, 1);
	}
 
 
 
	if(btnNum == 2 && highlightNum == 1){
		yourMenu.highlight_tween.one_two.addTarget(yourMenu.highlight_mc, 1);
	}
	if(btnNum == 2 && highlightNum ==3){
		yourMenu.highlight_tween.three_two.addTarget(yourMenu.highlight_mc, 1);
	}
	if(btnNum == 2 && highlightNum ==4){
		yourMenu.highlight_tween.four_two.addTarget(yourMenu.highlight_mc, 1);
	}
 
 
	if(btnNum == 3 && highlightNum == 1){
		yourMenu.highlight_tween.one_three.addTarget(yourMenu.highlight_mc, 1);
	}
	if(btnNum == 3 && highlightNum == 2){
		yourMenu.highlight_tween.two_three.addTarget(yourMenu.highlight_mc, 1);
	}
	if(btnNum == 3 && highlightNum == 4){
		yourMenu.highlight_tween.four_three.addTarget(yourMenu.highlight_mc, 1);
	}
 
 
	if(btnNum == 4 && highlightNum == 1){
		yourMenu.highlight_tween.one_four.addTarget(yourMenu.highlight_mc, 1);
	}
	if(btnNum == 4 && highlightNum == 2){
		yourMenu.highlight_tween.two_four.addTarget(yourMenu.highlight_mc, 1);
	}
	if(btnNum == 4 && highlightNum == 3){
		yourMenu.highlight_tween.three_four.addTarget(yourMenu.highlight_mc, 1);
 
	}
 
 
};
 
//Assign appropriate button actions for menu items
stage.addEventListener(MouseEvent.CLICK, itemButtons);
function itemButtons(evt:MouseEvent):void {
	switch (evt.target) {
 
		case yourMenu.menu1.item1_btn :
			trace("Menu 1, button 1");
			break;
 
		case yourMenu.menu1.item2_btn :
			trace("Menu 1, button 2");
			break;
 
		case yourMenu.menu1.item3_btn :
			trace("Menu 1, button 3");
			break;
 
 
 
		case yourMenu.menu2.item1_btn :
			trace("Menu 2, button 1");
			break;
 
		case yourMenu.menu2.item2_btn :
			trace("Menu 2, button 2");
			break;
 
		case yourMenu.menu2.item3_btn :
			trace("Menu 2, button 3");
			break;
 
 
 
		case yourMenu.menu3.item1_btn :
			trace("Menu 3, button 1");
			break;
 
		case yourMenu.menu3.item2_btn :
			trace("Menu 3, button 2");
			break;
 
		case yourMenu.menu3.item3_btn :
			trace("Menu 3, button 3");
			break;
 
 
 
		case yourMenu.menu4.item1_btn :
			trace("Menu 4, button 1");
			break;
 
		case yourMenu.menu4.item2_btn :
			trace("Menu 4, button 2");
			break;
 
		case yourMenu.menu4.item3_btn :
			trace("Menu 4, button 3");
			break;
 
	}
};

Старый 16.11.2010, 22:50
DDcH вне форума Посмотреть профиль Отправить личное сообщение для DDcH Найти все сообщения от DDcH
  № 4  
Ответить с цитированием
DDcH
[+1.3 07.08.08]

Регистрация: Jul 2008
Сообщений: 40
Цитата:
Сообщение от bav Посмотреть сообщение
К сожалению не могу посмотреть исходники, ибо использую CS4.
Вот пересохранено в кс 4 версию! Спасибо за заинтересованность!
banner1-4.rar

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

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
1) Исследуем место преступления:
Код AS3:
if (btnNum == 4 && highlightNum == 1)
{
	try
	{
		yourMenu.highlight_tween.one_four.addTarget(yourMenu.highlight_mc, 1); // строка 211
	} catch (error:Error) {
		trace(error.message);
		trace("yourMenu = " + yourMenu);
		trace("yourMenu.highlight_tween = " + yourMenu.highlight_tween);
		trace("yourMenu.highlight_tween.one_four = " + yourMenu.highlight_tween.one_four);
	}
}
// output:
// Error #1010: Термин не определен и не имеет свойств.
// yourMenu = [object MovieClip]
// yourMenu.highlight_tween = [object highlighttweeninstance_17]
// yourMenu.highlight_tween.one_four = undefined
2) Стоп. Где вы нашли такое безобразие? У вас все кроме четвертого меню плавно выезжают и заезжают? У меня нет.
3) Пѝшите на AS3 – забудьте про код в кадрах, хотя бы для начала. Прочтите книгу Мука "Essential ActionScript 3.0", если она еще не прочитана, и сделайте такое меню собственными руками. Одним только кодом.
4) Познакомьтесь с FlashDevelop.


Последний раз редактировалось bav; 17.11.2010 в 00:42.
Старый 17.11.2010, 12:57
DDcH вне форума Посмотреть профиль Отправить личное сообщение для DDcH Найти все сообщения от DDcH
  № 6  
Ответить с цитированием
DDcH
[+1.3 07.08.08]

Регистрация: Jul 2008
Сообщений: 40
Цитата:
Сообщение от bav Посмотреть сообщение
2) Стоп. Где вы нашли такое безобразие? У вас все кроме четвертого меню плавно выезжают и заезжают? У меня нет.
Я не понимаю о чём Вы. Я не разбираюсь в этом языке и это не моя специфика, я не смогу его изучать потому что занимаюсь другим делом. Я не понимаю в этом ничего.
Есть задача чтобы все 4 меню работали. И я прошу поддержку. Помогите. Скажите что именно мне исправить.

Старый 17.11.2010, 15:01
Хомяк вне форума Посмотреть профиль Отправить личное сообщение для Хомяк Найти все сообщения от Хомяк
  № 7  
Ответить с цитированием
Хомяк
[+1 24.11.10]
 
Аватар для Хомяк

Регистрация: Jun 2010
Сообщений: 280
Вы не всё откорректировали. В мувике highlight_tween нужно еще слои добавлять.
__________________
Ведь я только всего и хочу, чтобы все всегда было по-моему...


Последний раз редактировалось Хомяк; 17.11.2010 в 15:13.
Старый 17.11.2010, 18:05
DDcH вне форума Посмотреть профиль Отправить личное сообщение для DDcH Найти все сообщения от DDcH
  № 8  
Ответить с цитированием
DDcH
[+1.3 07.08.08]

Регистрация: Jul 2008
Сообщений: 40
Цитата:
Сообщение от Хомяк Посмотреть сообщение
Вы не всё откорректировали. В мувике highlight_tween нужно еще слои добавлять.
Слои добавил, назвал по аналогии, добавил ключевики из тех которые были рядом.
И аналогичная история! Помогите!

ВОТ ФАЙЛ проект кс4 переделанный banner1-4.rar

Старый 17.11.2010, 21:42
Хомяк вне форума Посмотреть профиль Отправить личное сообщение для Хомяк Найти все сообщения от Хомяк
  № 9  
Ответить с цитированием
Хомяк
[+1 24.11.10]
 
Аватар для Хомяк

Регистрация: Jun 2010
Сообщений: 280
Твины этих слоев имеют также имена. А эти имена используются методами в 1-ом кадре основного мувика. Вы твины скопировали на новые слои но их имена не поправили (four_two, three_four, etc.). Теперь все работает, забирайте.
Вложения
Тип файла: rar banner1-4.rar (20.4 Кб, 47 просмотров)
__________________
Ведь я только всего и хочу, чтобы все всегда было по-моему...

Старый 18.11.2010, 09:29
DDcH вне форума Посмотреть профиль Отправить личное сообщение для DDcH Найти все сообщения от DDcH
  № 10  
Ответить с цитированием
DDcH
[+1.3 07.08.08]

Регистрация: Jul 2008
Сообщений: 40
Цитата:
Сообщение от Хомяк Посмотреть сообщение
Твины этих слоев имеют также имена. А эти имена используются методами в 1-ом кадре основного мувика. Вы твины скопировали на новые слои но их имена не поправили (four_two, three_four, etc.). Теперь все работает, забирайте.
Спасибо огромное, в этом кс 5 все наоборот как в премьере.
Спасибо

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

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

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


 


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


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