Лингвистический вызов ActionScript не работает - PullRequest
1 голос
/ 22 января 2009

У меня есть Flash-спрайт в моем проекте Director. В разделе «Свойства» этого спрайта на вкладках «Участник» и «Спрайт» оно называется «Оценка». В моем скрипте Lingo у меня есть следующий вызов:

sprite("Assessment").displayGrade(75, 3, 4)

где displayGrade - это функция, определенная в ActionScript объекта Flash как метод, принимающий в качестве параметров 3 числа. Тем не менее, я получаю сообщение об ошибке в этой строке, и не могу определить, почему. Я неправильно вызываю метод объекта Flash?

Ответы [ 4 ]

3 голосов
/ 30 января 2009

Я немного просмотрел и нашел вот это:

http://groups.google.com/group/macromedia.director.basics/browse_thread/thread/85203d2879267fe1?pli=1

и это тоже:

http://dreamweaverforum.info/director/23160-director-11-actionscript-3-a.html

Конечно, вы должны проверить, просматривая документы Director 11.

С уважением, Vyger

2 голосов
/ 29 января 2009

Я ничего не знаю о Директоре, но так как это еще не решено, я спрошу: как у вас дела со Flash?

  • Вы сказали, что ваш SWF использует AS3, но AS2 и AS3 используют совершенно разные движки, поэтому вполне возможно, что Director может вызвать один, но не другой, или метод отличается. Может помочь тестирование на простом SWF AS2.
  • Где вы определяете свою функцию во Flash? Если ваш участник Sprite ссылается на SWF, то я думаю, что вы, вероятно, хотите, чтобы функция была на главной временной шкале флэш-файла. Но если ваш член Sprite ссылается на фактический Sprite во флэш-фильме, то это не сработает, и вам потребуется определить функцию внутри Sprite (или, возможно, класс, присоединенный к спрайту).
  • Если есть какие-либо сомнения в отношении Flash, пытались ли вы вызывать встроенные (и, следовательно, гарантированно присутствующие) методы flash? Если фильм имеет более одного кадра на верхнем уровне, вы можете попробовать вызвать такие методы, как play (), stop () или gotoAndStop (n: Number). Если есть только один кадр, то это не так просто, так как большинство других методов не будет иметь очевидного визуального эффекта.

Заранее извиняюсь, если вы уже уверены, что с Flash все в порядке. Это только догадки.

1 голос
/ 24 января 2009

Попробуйте это:

установить ссылку на содержимое контейнера для вашего swf, это основная временная шкала Flash:

global swfTL
on beginSprite me
swfTL = getvariable(sprite('yourFlashSprite'),'_level0',False)
end

, затем позвоните

swfTL.displayGrade(75, 3, 4)

Надеюсь, это поможет.

0 голосов
/ 01 августа 2014

У меня есть Flash-спрайт в моем проекте Director. В разделе «Свойства» этого спрайта на вкладках «Участник» и «Спрайт» в качестве его имени указано «first». В моем скрипте Lingo у меня есть следующий вызов:

спрайт ( "первый"). Number1

где number1 - переменная, определенная в ActionScript3 объекта Flash: a = 25 во флэш-памяти. Тем не менее, в директории возвращаются, но если swf cteate в ActionScript2, возвращаем 25! что такое синтаксис в as3 для получения переменной из flash (swf) внутри директории (если swf создан в as3)?

...