![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+1.3 07.08.08]
Регистрация: Jul 2008
Сообщений: 40
|
Нужно было дабовить ещё один пункт (было 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 |
|
|||||
|
К сожалению не могу посмотреть исходники, ибо использую CS4. В целом же можно использовать следующий метод. Смотрите строчку кода номер 211 в первом кадре, видите, какие там упоминаются переменные, методы, свойства. Потом, строчкой выше добавляете необходимое количество вызовов trace(), чтобы увидеть что же из всего того, что вы увидели в строчке номер 211 равно undefined. Потом думаете, и ищите в коде, почему же оно это самое до сих пор не определено.
P.S. Попробуйте в следующий раз не писать в кадрах, если используете AS3. P.P.S. Господа, имеющие CS5, будьте добры, конкретизируйте на основании исходников. Последний раз редактировалось bav; 16.11.2010 в 15:28. |
|
|||||
|
[+1.3 07.08.08]
Регистрация: Jul 2008
Сообщений: 40
|
//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; } }; |
|
|||||
|
[+1.3 07.08.08]
Регистрация: Jul 2008
Сообщений: 40
|
Вот пересохранено в кс 4 версию! Спасибо за заинтересованность!
banner1-4.rar |
|
|||||
|
1) Исследуем место преступления:
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 3) Пѝшите на AS3 – забудьте про код в кадрах, хотя бы для начала. Прочтите книгу Мука "Essential ActionScript 3.0", если она еще не прочитана, и сделайте такое меню собственными руками. Одним только кодом. 4) Познакомьтесь с FlashDevelop. Последний раз редактировалось bav; 17.11.2010 в 00:42. |
|
|||||
|
[+1.3 07.08.08]
Регистрация: Jul 2008
Сообщений: 40
|
Цитата:
Есть задача чтобы все 4 меню работали. И я прошу поддержку. Помогите. Скажите что именно мне исправить. |
|
|||||
|
[+1 24.11.10]
Регистрация: Jun 2010
Сообщений: 280
|
Вы не всё откорректировали. В мувике highlight_tween нужно еще слои добавлять.
__________________
Ведь я только всего и хочу, чтобы все всегда было по-моему... Последний раз редактировалось Хомяк; 17.11.2010 в 15:13. |
|
|||||
|
[+1.3 07.08.08]
Регистрация: Jul 2008
Сообщений: 40
|
Цитата:
И аналогичная история! Помогите! ВОТ ФАЙЛ проект кс4 переделанный banner1-4.rar |
|
|||||
|
[+1 24.11.10]
Регистрация: Jun 2010
Сообщений: 280
|
Твины этих слоев имеют также имена. А эти имена используются методами в 1-ом кадре основного мувика. Вы твины скопировали на новые слои но их имена не поправили (four_two, three_four, etc.). Теперь все работает, забирайте.
__________________
Ведь я только всего и хочу, чтобы все всегда было по-моему... |
|
|||||
|
[+1.3 07.08.08]
Регистрация: Jul 2008
Сообщений: 40
|
Цитата:
Спасибо |
![]() |
![]() |
Часовой пояс GMT +4, время: 14:52. |
|
|
« Предыдущая тема | Следующая тема » |
|
|