Просмотр полной версии : Загрузка внешнего swf, требующего для работы доп. файлы
Ta_nan_da
17.09.2014, 13:34
День добрый! Проблема такая. Есть swf учебник, внутри которого хотелось бы подгрузить по нажатию кнопки другой swf. Всё казалось бы просто, если бы не одно но. Подгружаемый swf для работы требует целую папку дополнительных swf, звуков и файлик js. Всё это лежит в одной папке, куда он и лезет. Если подгрузить только один swf - он эту папку не видит и не работает. Есть ли возможность подключить эту папку тоже?
swf подгружаю вот таким образом:
var request:URLRequest = new URLRequest("R1/quiz.swf");
var loaderR1:Loader = new Loader()
loaderR1.load(request);
addChild(loaderR1);
Да, код пишу не в классах - перехожу с AS2, поэтому сначала учусь чисто писать по старинке, в кадрах.
Zebestov
17.09.2014, 13:45
А родительский SWF находится там же, где и подгружаемый?
Ta_nan_da
17.09.2014, 13:55
Лежит в папке R1, которая как раз находится там же, где и родительская флешка. Попробовала переложить подгружаемый тоже в корень, и нужную ему папку рядом - всё равно её игнорирует.
Zebestov
17.09.2014, 14:43
Правильно ли я понял:
-parent.swf
-R1 Folder
--quiz.swf
--весь остальной контент
При этом непосредственно quiz.swf запускается, а внутри parent.swf не работает?
Может засунуть parent.swf внутрь R1?
Ta_nan_da
17.09.2014, 15:24
Не-не, quiz.swf запускается. Но он не видит остального контента, поэтому по сути работает только его загрузчик и всё =/ Вопрос именно в том, как бы подгрузить еще и сам контент. Возможно, такого решения и нет :( А покопаться в подгружаемой флешке я не могу - программка её сама генерит и я на код не влияю.
Все варианты простого перемещения файликов в папку и обратно пробовала..
Zebestov
17.09.2014, 15:40
Я так и не понял. Если запустить просто отдельно quiz.swf — он работает?
Ta_nan_da
17.09.2014, 15:56
Он...отображает картинку загрузки. То есть работает, да. Но не подгружает остальное. А без остального он и есть просто колечко загрузки, судя по всему :( это самотестирование, оно состоит из нескольких кусков и если не подгружаются дополнительные файлики - то смысла от того, что quiz.swf просто загрузился как факт - не много(
Zebestov
17.09.2014, 16:00
Ну т.е. есть некая программа, которая генерирует quiz.swf и дополнительный файлы. И вот только она все сгенерировала, как ты сразу в проводнике делаешь двойной клик по quiz.swf и он запускается, но не работает как ожидается, все правильно?
Ta_nan_da
17.09.2014, 16:08
Замучала я вас)) Не так немного. Отдельно сделано самотестирование, в программке articulate. Сделано и сгенерирован swf, его альтернатива html и дополнительные файлы, без которых эти двое не пашут как надо. А учебник - отдельная swf. И я хочу на определенном кадре учебника подгрузить самотестирование на сцену. И сама загрузочная swf подгружается. Только она не отображает того, что надо, потому что теряет явно связь с дополнительными файлами.
Да, можно загружать html в отдельном окне и не париться, но так менее удобно и красиво - раз, а два...я никак не могу заставить его открываться в новом окне нужного мне размера, а не на весь монитор. А так совсем плохо. Может, тогда поможете с размером окна? Вдруг это проще.. всякие коды типа navigateToURL(new URLRequest("javascript:window.open('quiz.html','', 'height=470 ,width=640')"), '_blank');
не пашут как надо :( а я не умею с js работать.
Zebestov
17.09.2014, 16:12
Сделано и сгенерирован swf
Вот этот swf отдельно сам по себе работает? Его отдельно запустить можно? Если нет — что это вообще за swf такой? Может он что-то принимает в качестве flashvars (надо посмотреть в html), которые указывают ему пути к доп. файлам?
Ta_nan_da
17.09.2014, 16:15
Работает-работает. Но если его убрать от дополнительных файликов - он работает так, как я описала - только загрузочное кольцо крутится и всё, дальше не идет. Для полноценной работы он должен находиться в одной директории с папкой дополнительных файликов
Zebestov
17.09.2014, 16:17
Вот. А теперь еще раз должен уточнить: ты пробовала теперь родительский SWF разместить там же, где этот swf и все его файлы?
Ta_nan_da
17.09.2014, 16:24
Гхм, я вот посмотрела - это какая-то неправильная swf. Тип x-shockwave-flash. Может, с ним надо как-то иначе работать? Хотя вроде нет, это у всех такой тип. Я просто вычитала только что, что Shockwave - это вообще что-то другое...не, попутала, это нормальный флеш.
если пригодится, код html
<html>
<head>
<!-- Created using Articulate Quizmaker '09 3.2 - http://www.articulate.com -->
<!-- version: 3.2.907.1413 -->
<!-- saved from url=(0014)about:internet -->
<title>Ðàçäåë 1</title>
<script>
var g_bLMS = false;
var g_bAOSupport = false;
var g_strContentFolder = "quiz_content";
</script>
<script LANGUAGE="JavaScript1.2" SRC="quiz_content/quiz.js" TYPE="text/javascript"></script>
<script LANGUAGE="VBScript">
<!--
Sub player_FSCommand(ByVal command, ByVal args)
call player_DoFSCommand(command, args)
end sub
// -->
</SCRIPT>
<script>
var g_strSwfFile = "quiz.swf";
var g_nWidth = 720;
var g_nHeight = 540;
var g_strScale = "noscale"; // noscale | show all
var g_strBrowserSize = "default"; // default, fullscreen, optimal
var g_strBgColor = "#FFFFFF";
var g_strAlign = "middle";
var g_strQuality = "best";
var g_bCaptureRC = false;
var g_strFlashVars = "";
var g_bScrollbars = true;
</script>
</head>
<body onUnload="DoOnClose()" onbeforeunload="DoOnClose()" marginheight="0" marginwidth="0" topmargin="0" leftmargin="0">
<script>
document.bgColor = g_strBgColor;
if (g_bScrollbars)
{
document.write("<table border=0 cellpadding=0 cellspacing=0 width='100%' height='100%' align=center>");
document.write("<tr>");
document.write("<td align=center>");
}
WriteSwfObject(g_strSwfFile,
g_nWidth,
g_nHeight,
g_strScale,
g_strAlign,
g_strQuality,
g_strBgColor,
g_bCaptureRC,
g_strFlashVars);
if (g_bScrollbars)
{
document.write("</td>");
document.write("</tr>");
document.write("</table>");
}
ResizeBrowser(g_strBrowserSize);
</script>
<DIV id='divEmail' style="position: absolute; width: 10; height: 10; left: 10; top: 10; visibility:hidden" ></DIV>
</body>
</html>
Добавлено через 37 секунд
Родителя разместить там же пробовала. Не помогло(
Путь загрузки измеряется от страницы в которой внедрён мувик
т.е. если quiz.swf грузит картинку image.jpg которая лежит рядом с ним, то он её не получит.
- index.html
- parent.swf
- subdir/child.swf
- subdir/image.swf
то в child.swf надо грузить по пути subdir/image.swf
Добавлено через 1 минуту
Также можно задать в html параметр base ="subdir", относительно которого будет считаться корень загрузки
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.