Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как прослушать событие у расширенного MovieClip (http://www.flasher.ru/forum/showthread.php?t=178942)

Salador 02.05.2012 18:45

Как прослушать событие у расширенного MovieClip
 
Реализую типа магазина в игре. На витрине лежат товары, и при наведении мыши на товар изображение товара меняется (выводится цена), реализую просто переходом на второй кадр у мувика товара gotoAndStop(2), это все работает. Но необходимо чтобы при нажатии товара активировалась кнопка купить, но если в основном коде вызываю слушатель нажатия мыши он не работает. Как реализовать?

Основной код. При нажатии на первый объект должен выводиться trace("HELLO"); а он не работает.
Код AS3:

var ShopArr:Array = new Array(8);
 
ShopArr[0]=new SalShop(ShopExA);
ShopArr[1]=new SalShop(ShopExB);
ShopArr[2]=new SalShop(ShopExC);
ShopArr[3]=new SalShop(ShopHelp1);
ShopArr[4]=new SalShop(ShopHelp2);
ShopArr[5]=new SalShop(ShopStar);
ShopArr[6]=new SalShop(ShopRandom);
ShopArr[7]=new SalShop(ShopThemes);
 
ShopArr[0].addEventListener(MouseEvent.CLICK, funClick1);
 
function funClick1():void
{
        trace("HELLO");
}


Подключаемый пакет:
Код AS3:

package Salador {
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.display.Loader;
        import flash.display.Bitmap;
        import flash.display.BitmapData;
        import flash.events.MouseEvent;
        import flash.display.MovieClip;
        import flash.display.*;
 
        public class SalShop extends MovieClip {
                        private var Salclips:MovieClip;
                        public var TekClicks:Boolean=false;
                        public function SalShop(source:MovieClip):void {
                        Salclips=source;
                        Salclips.addEventListener(MouseEvent.MOUSE_OVER,clipOver);
                        Salclips.addEventListener(MouseEvent.MOUSE_OUT,clipOut);
                        }
 
                        private function clipOver(Event:MouseEvent):void
                                {
                                        Salclips.gotoAndStop(2);
                                }
 
                        private function clipOut(Event:MouseEvent):void
                                {
                                        Salclips.gotoAndStop(1);
                                }
 
        }
}


maxkar 02.05.2012 20:50

Слушатель должен параметр события принимать. А ваш funClick1 не принимает. И вообще, поставьте debug-плеер. Он бы вам об этой ошибке и сказал.

Salador 02.05.2012 21:10

Да тормазнул немного - заменил на:
Код AS3:

function funClick1(Event:MouseEvent):void

Всеравно при клике trace("HELLO"); не работает.

Добавлено через 5 часов 19 минут
Сделал - в пакете SalShop использовал глобальную переменнную public static var TekBuy:int; для определения выбранного товара.


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

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