встроенный button.swf не запускает событие CLICK - PullRequest
1 голос
/ 09 августа 2010

Я пытаюсь вставить SWF в мой проект as3 flex следующим образом:

[Embed(source = "../assets/next_button.swf")]
[Bindable]
protected var nextButtonClass:Class;
protected var next_btn:MovieClip = next_btn = new nextButtonClass() as MovieClip;
// ...
next_btn.addEventListener(MouseEvent.CLICK, onAdChange);

next_button.swf - as2, созданный с помощью Adobe Flash CS4. внутри есть одна кнопка.

если я изменил тип символа кнопки на movieclip по адресу next_button.fla, при передаче события CLICK проблем не будет.

я пытался привести next_btn к классам mx.controls.Button и fl.controls.Button, в этом случае next_btn становится нулевым.

между прочим, кнопка реагирует на наведение мыши, и события нажатия должным образом просто не передают ее верхнему значению SWF.

Есть ли какой-нибудь прием, который я могу сделать, чтобы передать события Button моему контейнеру swf?

Ответы [ 3 ]

1 голос
/ 09 августа 2010

Подводя итог, после того, как решение Грейпфрукт предложил, код выглядит следующим образом:

[Embed(source = "../assets/next_button.swf", symbol="next_button")]
[Bindable]
protected var nextButtonClass:Class;
protected var next_btn:DisplayObject = new nextButtonClass() as DisplayObject;
// ...
next_btn.addEventListener(MouseEvent.CLICK, onAdChange);
0 голосов
/ 09 августа 2010

Попробуйте встроить и создать экземпляр символа внутри SWF, а не всего SWF:

 [Embed(source = "../assets/next_button.swf", symbol"MyButton")]

Очевидно, вам нужно заменить MyButton на фактическое имя символа кнопки.

Это должно дать вам более прямой доступ к нему, поскольку он не будет заключен в Loader.

0 голосов
/ 09 августа 2010

Я не думаю, что скрипт As3 может получить доступ к свойствам SWF AS2. Если у вас есть доступ к fla, почему бы не поменять кнопку fla на проект AS3?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...