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

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

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

Регистрация: Mar 2010
Сообщений: 137
По умолчанию Как вызывать функции

Доброго времени суток. Столкнулся с проблемой в AS2.

Создаю MovieClip с функцией:
Код AS1/AS2:
function getTrue(){ return true; }
Помещаю на сцену его экземпляр с именем testMC. Пытаюсь вызвать функцию.
Код AS1/AS2:
trace(testMC.getTrue());
Флэш пишет: "undefined". Но в любом событии, в любом слудеющем кадре я получаю доступ к getTrue().

Если аттачить клип динамически - всё равно не помогает.

Почему так, как от этого избавиться? Помогите, если не сложно.

Старый 18.03.2010, 23:25
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 2  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
в каком месте вы вызываете функцию? На руте или где? Если на руте все должно работать.
Код AS1/AS2:
function getTrue():Boolean { return true; }
Так корректнее

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

Регистрация: Jan 2006
Адрес: Novosibirsk
Сообщений: 353
Цитата:
Сообщение от semenyakinVS Посмотреть сообщение
Доброго времени суток. Столкнулся с проблемой в AS2.

Создаю MovieClip с функцией:
Код AS1/AS2:
function getTrue(){ return true; }
Помещаю на сцену его экземпляр с именем testMC. Пытаюсь вызвать функцию.
Код AS1/AS2:
trace(testMC.getTrue());
Флэш пишет: "undefined". Но в любом событии, в любом слудеющем кадре я получаю доступ к getTrue().

Если аттачить клип динамически - всё равно не помогает.

Почему так, как от этого избавиться? Помогите, если не сложно.

Если мне не изменяет память, то testMC.getTrue() не сможет вызваться. По той простой причине, что у мувика testMC нет такого метода getTrue().

Если вы хотите, что бы вызывалось именно так как вы написали, то этот метод нужно создать для мувиклипов.

Код AS1/AS2:
 
createEmptyMovieClip("mc",1000)
MovieClip.prototype.getTrue = function(){
	return true
	}
 
	trace(mc.getTrue())


Последний раз редактировалось NoCD; 19.03.2010 в 13:28.
Старый 19.03.2010, 13:41
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 4  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Все там может вызваться. вы ошибаетесь. getTrue это не метод это функция находящаяся внутри клипа и все. и никак не его метод

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

Регистрация: Jan 2006
Адрес: Novosibirsk
Сообщений: 353
Не внимательно прочитал, что автор внутри мувика код пишет.

Старый 19.03.2010, 19:16
semenyakinVS вне форума Посмотреть профиль Отправить личное сообщение для semenyakinVS Найти все сообщения от semenyakinVS
  № 6  
Ответить с цитированием
semenyakinVS

Регистрация: Mar 2010
Сообщений: 137
Да не работает, честное слово! Я тоже когда столкнулся с этим очень удивился!

Я проверял не один раз. Функция вызывается, но только в следующем кадре. Сразу после создания мувика, в том же кадре флэш попросту её не видит. Переменные видит, а функции - хоть убей... Не знаю прямо что делать! Сейчас так извращаться приходиться, чтобы функции использовать…

Может быть, что в этом виноват компилятор?

Старый 19.03.2010, 20:56
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 7  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
что-то вы бред говорите. Пришлите что там у вас получается. Только в cs3.
__________________
мой пустой блог

Старый 19.03.2010, 21:45
semenyakinVS вне форума Посмотреть профиль Отправить личное сообщение для semenyakinVS Найти все сообщения от semenyakinVS
  № 8  
Ответить с цитированием
semenyakinVS

Регистрация: Mar 2010
Сообщений: 137
Смотрите. В CS3 не могу, потому, что сейчас работаю с CS2, и именно в CS2 интересует причина глюков.
Вложения
Тип файла: zip TMP.zip (4.8 Кб, 33 просмотров)

Старый 19.03.2010, 22:07
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 9  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
это потому что код в главном кадре выполняется до того, как выполнится код в мувике. Соответсвенно, у него еще нет этой функции. Вставьте trace во вложенный мувик и всё вам станет понятно. Если добавить второй кадр с этим же мувиком и перенести код в него, то код выполнится правильно.

Мораль: не пишите код в мувиках, только на главном таймлайне. Сами ведь потом затрахаетесь искать на каком мувике что писали.
__________________
мой пустой блог

Старый 19.03.2010, 22:23
semenyakinVS вне форума Посмотреть профиль Отправить личное сообщение для semenyakinVS Найти все сообщения от semenyakinVS
  № 10  
Ответить с цитированием
semenyakinVS

Регистрация: Mar 2010
Сообщений: 137
Странно... А почему в CS1 это работало?

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

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

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


 


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


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