Загружает новый файл мувиклипа / SWF при нажатии кнопки в AS3 - PullRequest
2 голосов
/ 05 сентября 2011

Добрый день.Я создаю библиотеку, как флэш-файл для нашей игры.Я использую Adobe Flash CS5 с as3 и Adobe Indesign.Я все еще очень новичок во флэш-памяти (настоящий новичок), и мне интересно, может ли кто-нибудь помочь мне в моей проблеме.

ОПИСАНИЕ:

У меня есть файл мувиклипаназванный "mainPage".mainPage содержит 6 кнопок (с дизайном Cyrstal), но позволяет сосредоточиться только на 1 кнопку.1-я кнопка содержит имя Art_btn, которое вызывает artBook мувиклипа при нажатии кнопки (что является моей проблемой).У меня есть еще один видеоклип под названием "artBook".содержимое в моей книге произведений искусства разделено или написано на каждом кадре, который может быть вызван при нажатии кнопки «Далее» или «Предыдущая».

Вот мой вопрос.я не знаю, какой правильный код будет вызывать artBook при нажатии Art_btn.я попытался вставить такие коды, как loadMovie, gotoAndPlay и addChild, но когда я тестирую его, содержимое mainPage не отображается и выдает ошибки.

У меня есть два варианта решения моей проблемы:

  1. загрузка SWF-файла, сделанного из Adobe Indesign, на вкладке действий во флэш-памяти cs5

  2. загрузка / открытие другого фрагмента ролика по нажатию кнопки.


цель моего первого варианта - создать хотя бы простой эффект переворачивания страницы для книги. У меня уже есть файлы, созданные в Adobe Indesign, которые работают при открытии вне Flash Adobe Adobe CS5

my2-й вариант - вызывать другой фрагмент ролика, когда я нажимаю определенную кнопку, и у него нет анимации переворачивания страницы и т.п.

stop();

import flash.events.MouseEvent;

Art_btn.addEventListener(MouseEvent.CLICK, ArtClick);

function ArtClick(event:MouseEvent){
 //what should be put here? :( here is where i put the codes i tried that causes the error

}

Надеюсь, кто-нибудь сможет мне помочь.:( Я был бы очень признателен, если бы это могло сработать. Заранее спасибо тем, кто ответил бы

1 Ответ

1 голос
/ 05 сентября 2011

Вот как выполнить вариант 1 (загрузить внешний SWF):

var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, handleLoaded);
loader.load(new URLRequest("nameAndLocationOfSWFFile.swf"));

function handleLoaded(evt:Event):void {
   //evt.target.content is your reference to the swf that was loaded
   addChild(evt.target.content);
}

Что касается варианта 2, это зависит от того, как вы пытаетесь выполнить задачу. Исходя из вашего описания, я не уверен, какое именно намерение или подход вы пытаетесь использовать, но вы можете либо добавить свой видеоклип на сцену в другом кадре, либо создать новый экземпляр мувиклипа. 1004 *

Чтобы использовать другой кадр, просто поместите видеоклип на сцену в другой кадр и присвойте ему метку. Внутри ArtClick() вы можете позвонить gotoAndStop("myTargetFrameLabel").

Чтобы создать новый экземпляр мувиклипа, необходимо настроить связь с мувиклипом. Если вы дадите своему мувиклипу имя класса связывания ArtBook, вы можете использовать следующее в ArtClick():

var myClip:MovieClip = new ArtBook();
addChild(myClip);

Это добавит новый экземпляр ArtBook на сцену.

...