Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Не устанавливается Listener к картинке-объекту (http://www.flasher.ru/forum/showthread.php?t=179258)

vlad275 10.05.2012 18:38

Не устанавливается Listener к картинке-объекту
 
Здравствуйте, подскажите пожалуйста, почему удается привязать событие клика на stage, но не удается по картинке-movie-clip? Привожу скрипт которые не работает:

Код AS3:

package{
        import flash.display.MovieClip;
        import flash.net.*;
        import flash.events.MouseEvent;
 
        public class myClass extends MovieClip
        {
 
                public function myClass()
                {
                        Symbol1F8.addEventListener( MouseEvent.CLICK, gotoAuthorPage );
                }
 
                public function gotoAuthorPage(event:MouseEvent):void
                {
                            var targetURL:URLRequest = new URLRequest("http://plustelecom.ru/");
                            navigateToURL(targetURL);
                }
 
 
        }
 
}

Добавлено через 6 минут
Код:

C:\Users\admin\Desktop\myClass.as, Line 11        1120: Access of undefined property Symbol1F8.

bav 10.05.2012 18:46

Что выводит trace?
Код AS3:

public function myClass()
{
  trace(Symbol1F8);
  Symbol1F8.addEventListener( MouseEvent.CLICK, gotoAuthorPage );
}

Добавлено через 1 минуту
Symbol1F8 - это instance name символа или его имя в библиотеке?

vlad275 10.05.2012 18:52

Вложений: 1
Имя в библиотеке
Ошибка C:\Users\admin\Desktop\myClass.as, Line 11 1120: Access of undefined property Symbol1F8.

bav 10.05.2012 18:55

Укажите этому клипу на сцене instance name - Symbol1F8.

vlad275 10.05.2012 19:03

Вложений: 1
Присвоил инстанс-нэйм PicURL1. В скрипте тоже поменял. Объект находится trace, но все-равно не реагирует на клик :-(

Wolsh 10.05.2012 20:34

vlad275, для оформления своего кода надо использовать теги [as3][/as3]

vlad275 11.05.2012 11:39

Wolsh, хорошо.
Так, что делать если установка instance name не помогла повесить на объект Listener?


Код:

null
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
        at myClass()


bav 11.05.2012 12:57

Проверить в свойствах публикации: ActionScript 3 > Settings > Automatically declare stage instances. (Автоматическое объявление экземпляров на сцене). Без этой галочки вам в классе нужно самостоятельно объявить переменную PicURL1, с галочкой - не нужно.
Код AS3:

public class myClass extends MovieClip
{
        public var PicURL1:MovieClip;
 
        public function myClass()
        {
                PicURL1.addEventListener( MouseEvent.CLICK, gotoAuthorPage );
        }
        ...
}


vlad275 11.05.2012 13:06

Проверил. Галочка стоит.

Все-равно ошибка 1009

Может у меня не тот тип объекта? Может Button нужен? Как по пунктам присвоить instance name? Навожу курсор на картинку, F8, ввожу имя объекта, переключаюсь на закладку Property, ввожу Instance name, Ctrl+s, Ctrl+Enter
Код AS3:

package{
        import flash.display.MovieClip;
        import flash.net.*;
        import flash.events.MouseEvent;
 
        public class myClass extends MovieClip
        {
                public var PicURL1:MovieClip;
                public function myClass()
                {
 
                        trace(PicURL1);
                          PicURL1.addEventListener( MouseEvent.CLICK, gotoAuthorPage );
                        PicURL1.addEventListener(MouseEvent.CLICK, gotoAuthorPage);
                }
 
                public function gotoAuthorPage(event:MouseEvent):void
                {
                            var targetURL:URLRequest = new URLRequest("http://plustelecom.ru/");
                            navigateToURL(targetURL);
                }
 
 
        }
 
}

Добавлено через 23 часа 3 минуты
Почему не работает? Глюк флеша?

mihael_p 17.05.2012 11:31

Вложений: 1
Код AS3:

package 
{
        import flash.display.MovieClip;
        import flash.events.MouseEvent;
        import flash.net.navigateToURL;
        import flash.net.URLRequest;
 
        /**
        * ...
        * @author Mihael
        */

        public class GoToPage extends MovieClip
        {
                public var myMC:MovieClip;
 
                public function GoToPage():void
                {
                        myMC = new Library_myMC();
                        myMC.x = stage.stageWidth / 2;
                        myMC.y = stage.stageHeight / 2;
                        addChild(myMC);
                        myMC.addEventListener(MouseEvent.CLICK, goURL);// Добавленный объект с библиотеки
                        mc.addEventListener(MouseEvent.CLICK, goAutorURL);// Объект уже на сцене
                }
 
                private function goAutorURL(e:MouseEvent):void
                {
                        var targetURL:URLRequest = new URLRequest("http://plustelecom.ru/");
                            navigateToURL(targetURL);
                }
 
                private function goURL(e:MouseEvent):void
                {
                        var targetURL:URLRequest = new URLRequest("http://plustelecom.ru/");
                            navigateToURL(targetURL);
                }
 
        }
 
}

В общем как то так...


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

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