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

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

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

Регистрация: Jun 2015
Сообщений: 6
По умолчанию Проигрывание ролика в ролике по кнопке

Существует ролик в котором расположены кнопки, при нажатии на кнопку должен проигрываться Фрагмент ролика. Сам фрагмент ролика (MovieClip) находится на этой же сцене в другом слое.
Пр написании кода возникает ошибка:
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at _fla::MainTimeline/frame1()

ЕГЭ1 - это кнопка
ЕГЭ - это MovieClip

В дальнейшем предполагается создать еще 8 кнопок и 8 мувиков.
Подскажите новичку как это осуществить?
Код:

Код AS3:
ЕГЭ.stop();
this.ЕГЭ1.addEventListener(MouseEvent.CLICK, clickListener1);
function clickListener1(event:MouseEvent): void{
 
		ЕГЭ.play();
 
}


Последний раз редактировалось udaaff; 15.06.2015 в 12:45.
Старый 15.06.2015, 16:59
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 2  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Во-первых лучше используйте латиницу в названиях, да и вообще в программировании.
А ваши имена ЕГЭ и т.д. точно прописаны именно на этих объектах (в панели Properties - InstanceName), а не просто в библиотеке?

Старый 15.06.2015, 18:15
KaterinaRash вне форума Посмотреть профиль Отправить личное сообщение для KaterinaRash Найти все сообщения от KaterinaRash
  № 3  
Ответить с цитированием
KaterinaRash

Регистрация: Jun 2015
Сообщений: 6
Да, имена действительно прописаны в свойствах.

Добавлено через 12 минут
Спасибо, за совет с латиницей!!!
Я решила вопрос:
Код главной сцены, по нажатии на кнопку переходит на новый кадр в котором содержится другой мувик:
Код AS3:
stop();
ege1.addEventListener(MouseEvent.CLICK, clickListener1);
function clickListener1(event:MouseEvent): void{
 
		nextFrame();
 
}
а во втором мувике расположены три кнопки: назад на главную, воспроизведение и перемотка на 65 кадров назад
код:
Код AS3:
this.main.addEventListener(MouseEvent.CLICK, clickListener10);
function clickListener10(event:MouseEvent): void{MovieClip(parent).gotoAndPlay(1);
 
}
playb.addEventListener(MouseEvent.CLICK,playF);
 
function playF(e:MouseEvent): void{
 
		gotoAndPlay (currentFrame + 25);
	if(currentFrame==totalFrames)
	{
		MovieClip(parent).gotoAndPlay(1);
	}
}
 
this.prevb.addEventListener(MouseEvent.CLICK, clickListener13);
function clickListener13(event:MouseEvent): void{gotoAndStop (currentFrame - 65);
}
Проблема была в том, что я не учитывала родительский уровень при возвращении назад:
Код AS3:
MovieClip(parent).gotoAndPlay(1);
Осталось добавить остальные кнопки и мувики (по 8 штук) и чтоб все работало!
Если не получится, я напишу!!!


Последний раз редактировалось KaterinaRash; 15.06.2015 в 18:34.
Старый 15.06.2015, 18:27
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 4  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Если ЕГЭ это название кнопки в вашем мувике, то к этой кнопке нужно обращаться через её родителя, то-есть через имя мувика в котором она лежит (myMovieClip.ЕГЭ.addEvent и т.д.). Если вышеприведенный код располагается на основной сцене.
Просто ваш исходник я не могу посмотреть, как как у меня только cs3.

Старый 16.06.2015, 12:16
KaterinaRash вне форума Посмотреть профиль Отправить личное сообщение для KaterinaRash Найти все сообщения от KaterinaRash
  № 5  
Ответить с цитированием
KaterinaRash

Регистрация: Jun 2015
Сообщений: 6
Всегда ломала голову, а где в окне программы (или на каком объекте) мне прописать myMovieClip, чтобы система понимала что это основной ролик? Ведь на главной сцене много объектов(кнопки, ролики, слои).

Добавлено через 3 минуты
Если писать myMovieClip.ЕГЭ.addEvent то выходит ошибка:
Обращение не существующего свойства myMovieClip

А к какому объекту мне присвоить имя myMovieClip? Как присвоить имя ко всему ролику?

Добавлено через 1 час 1 минуту
Помогите пожалуйста!!!
Почему на главной сцене когда я прописываю код для кнопок(ege1, dop1), чтобы при нажатии на кнопку проигрывался определенный ролик, то появляется ошибка:
Цитата:
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at _fla::MainTimeline/clickListener1()
Код AS3:
stop();
 
ege1.addEventListener(MouseEvent.CLICK, clickListener1);
function clickListener1(event:MouseEvent): void{
 
            ege.gotoAndPlay(1);
 
}
dop1.addEventListener(MouseEvent.CLICK, clickListener2);
function clickListener2(event:MouseEvent): void{
 
		dop.gotoAndPlay(1);
}

Старый 16.06.2015, 14:10
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 6  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Цитата:
где в окне программы (или на каком объекте) мне прописать myMovieClip, чтобы система понимала что это основной ролик
А к какому объекту мне присвоить имя myMovieClip? Как присвоить имя ко всему ролику?
Если вы подразумеваете под основным роликом - главную сцену, то доступ к ней можно получить через (root as MovieClip), но есть и другие варианты.

Цитата:
Почему на главной сцене когда я прописываю код для кнопок(ege1, dop1), чтобы при нажатии на кнопку проигрывался определенный ролик, то появляется ошибка
Значит какие-то объекты, к которым вы обращаетесь через код - ещё не существуют (например они находятся в другом кадре, либо не прописаны имена).

Старый 16.06.2015, 14:25
KaterinaRash вне форума Посмотреть профиль Отправить личное сообщение для KaterinaRash Найти все сообщения от KaterinaRash
  № 7  
Ответить с цитированием
KaterinaRash

Регистрация: Jun 2015
Сообщений: 6
Да основной ролик это главная сцена.
Будьте так любезны, напишите пожаааалуйста пример как получить доступ к
этой сцене и дать ей имя(MovieClip)!!!!!
Я сосвсем не шарю (((

Добавлено через 5 минут
Я дала имена роликам (фрагментам роликов) dop и ege. На сцене у меня ключевой кадр, в нем расположен фрагмент ролика, в свойствах он назван dop (ну и ege соответственно).
К ним я и обращаюсь:
Код AS3:
ege1.addEventListener(MouseEvent.CLICK, clickListener1);
function clickListener1(event:MouseEvent): void{
 
            ege.gotoAndPlay(1);
 
}
Может как-то еще их надо обозвать или определить. Но беда в том, что я не знаю как!!!

Старый 16.06.2015, 14:31
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 8  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Ей не нужно давать имя. Если вы пишете код в кадре сцены, то можете просто дописать
Код AS3:
this.stop() // сцена останавливает проигрывание
stop() // то же самое
this - это ссылка не текущий объект, в котором вы пишете код в данный момент. А так как вы пишете код в кадре сцены, то this - это и есть сцена. Если вы напишете this в кадре какого-то мувика, то this будет ссылаться на этот мувик.

Если вы пишете код в кадре какого-то мувика, то обратиться к сцене из него можно так:
Код AS3:
(root as MovieClip).play(); // сцена начинает проигрываться
root - всегда хранит ссылку на основной класс вашей флешки. Так как флешка не может существовать без хоть какого нибудь контейнера в который вы помещаете все ваши объекты. Ваша сцена это точно такой же мувик, как и любой другой, просто он создаётся по-умолчанию и служит контейнером для всего вашего проекта.
Но тут главное не запутаться со stage и root.

Старый 16.06.2015, 14:53
KaterinaRash вне форума Посмотреть профиль Отправить личное сообщение для KaterinaRash Найти все сообщения от KaterinaRash
  № 9  
Ответить с цитированием
KaterinaRash

Регистрация: Jun 2015
Сообщений: 6
С именем сцены понятно!!!
А как мне обратиться к вложенным роликам dop и ege?
Система пишет ошибку на мой код
Цитата:
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at _fla::MainTimeline/clickListener1()
мой корявый код:
Код AS3:
this.ege1.addEventListener(MouseEvent.CLICK, clickListener1);
function clickListener1(event:MouseEvent): void{
 
            (ege as MovieClip).gotoAndPlay(1);
 
}
вообще можно так писать? или это полная ересь?:
(ege as MovieClip).gotoAndPlay(1);

ege - это ролик во 2 кадре.
Я хочу чтобы по кнопке он начал проигрываться. А он.....блин...(((

Добавлено через 56 секунд
ПОМОГИТЕЕЕ!!! ПОЖАЛУЙСТА!!!

Добавлено через 27 минут
Я написала вот так:
Код AS3:
this.ege1.addEventListener(MouseEvent.CLICK, clickListener1);
function clickListener1(event:MouseEvent): void{
 
            this.gotoAndStop(this.currentFrame+1);
не знаю почему, но все работает!!!

Добавлено через 27 минут
Ошибка исчезла!!!

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
(ege as MovieClip) так писать просто нет смыла, так как ege у вас вроде не мувик, а кнопка даже.
Вообще as это привидение типов. Когда непонятно что это за объект, но мы хотим попробовать манипулировать им как каким-то конкретным классом, например мувиком.

Цитата:
ege - это ролик во 2 кадре.
Если мувик появляется только во втором кадре, то доступа в первом кадре к нему нет же.

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

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

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


 


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


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