Использование AS3 / Flash CS4
Хорошо, спасибо всем, кто читает это.Моя проблема, в частности, я проектирую пользовательский интерфейс с элементами управления на нем.5 кнопок поворота влево, поворота вправо, увеличения, уменьшения и автоповорота.Интерфейс сам по себе работает нормально, я могу отслеживать нажатия кнопок, переключать кнопки автоповорота и т. Д. *
Моя программа читает XML-файл.Загружает некоторые изображения, заполняет массив ссылками для каждого изображения, и при нажатии на изображение загрузчик загружает SWF-файл из URL-адреса и отображает его на экране.Нет проблем.
Теперь у меня изначально был пользовательский интерфейс управления масштабированием в библиотеке runtime_loaded.fla и прослушиватели мыши в том же классе связанных документов.Интерфейс работает с movieClip в runtime_loaded.swf, когда он находится в том же коде.
Теперь, чтобы попрактиковаться в хорошем кодировании, я решил удалить пользовательский интерфейс из runtime_loaded.fla и добавить его в Main.fla.Это важно, потому что main будет обрабатывать 100 возможных изображений / объектов, каждый из которых имеет свой собственный уникальный swf для ссылки.Если я решу изменить внешний вид интерфейса, но оставить вызовы функций одинаковыми, я могу, по сути, добавить столько, сколько я хочу, в файл main.fla вместо runtime_loaded.fla, который я должен сделать для каждого отдельного объекта..
СТРУКТУРА ФАЙЛА
Main.fla <- interface in the library. 5 mouse event functions. Inside each function calls
a property of loaded_swf (loaded_swf.rotateLeft, loaded_swf.rotateRight) etc...
Runtime_loaded.fla <- links specificObject.as in properties (AS3/CS4)
specificObject.as <- has 5 public static functions{ rotateRight, rotateLeft, zoomIn, zoomOut, toggleAutoRotate }
КОД
//showFlashBox
function showFlashBox(temp_string:String):void {
if(!flash_box_on){
var temp_top:uint = numChildren;
addChildAt(FlashBoxContainer,temp_top);
newXButton.addEventListener(MouseEvent.CLICK, flashBoxXClick);
1. addChild(new_loader);
2. var url:URLRequest = new URLRequest(temp_string);
new_loader.x = 0;
new_loader.y = 0;
new_loader.load(url);
3. new_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, gotSwf);
flash_box_on = true;
}
}
function gotSwf(e:Event){
4. //loaded_swf = e.target.content;
trace(e.target.content);
5. new_zoom_controls.button_minus.addEventListener(MouseEvent.CLICK, zoomOutFunction);
new_zoom_controls.button_plus.addEventListener(MouseEvent.CLICK, zoomInFunction);
new_zoom_controls.button_left.addEventListener(MouseEvent.CLICK, rotateLeftFunction);
new_zoom_controls.button_right.addEventListener(MouseEvent.CLICK, rotateRightFunction);
new_zoom_controls.button_rotate.addEventListener(MouseEvent.CLICK, toggleRotateFunction);
function rotateRightFunction(e:MouseEvent){
6. //loaded_swf.rotateRight();
}
function rotateLeftFunction(e:MouseEvent){
//loaded_swf.rotateLeft();
}
function zoomInFunction(e:MouseEvent){
//loaded_swf.zoomIn();
}
function zoomOutFunction(e:MouseEvent){
//loaded_swf.zoomOut();
}
function toggleRotateFunction(e:MouseEvent){
//loaded_swf.toggleAutoRotate();
if(new_zoom_controls.button_rotate.currentFrame == 1){
new_zoom_controls.button_rotate.gotoAndStop(2);
}
else new_zoom_controls.button_rotate.gotoAndStop(1);
}
new_loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, gotSwf);
}
Если вы выполните шаги 1-6, выпосмотрите мои шаги по загрузке .swf, прослушивателей событий мыши и обработчиков щелчков, затем вызов объекта varloaded_swf: Object;
public static function rotateLeft():void
{
object.yaw(animation_turning_speed);
}
public static function rotateRight():void
{
object.yaw(-animation_turning_speed);
}
, если я запускаю main.fla и пытаюсь нажимать кнопки.Это происходит.
ReferenceError: Ошибка # 1069: свойство rotateRight не найдено в ThreedsKU39web, и значение по умолчанию отсутствует.at MethodInfo-82 () ReferenceError: Ошибка # 1069: свойство rotateLeft не найдено в ThreedsKU39web и значение по умолчанию отсутствует.в MethodInfo-83 ()