У меня есть этот фрагмент XML, который я использую для создания нового файла swf через swfmill:
<?xml version="1.0" encoding="iso-8859-1" ?>
<movie width="300" height="250" framerate="24">
<background color="#ffffff"/>
<frame>
<library>
<clip id="test_swf" import="test.swf"/>
</library>
<place id="test_swf"/>
</frame>
</movie>
Я хотел бы передать этому swf некоторые переменные, такие как текст и изображение, для загрузки на сцену, как это можно сделать с помощью FlashVars: <param name=FlashVars value="oneText=Hello%20World&oneImage=image.jpg" />
Спасибо!
Небольшое обновление:
Я попытался указать параметры как переменную GET, как это
<clip id="test_swf" import="test.swf?theValue=Hello%20World"/>
но это не сработало и при копировании выдало эту ошибку:
WARNING: Cannot import test.swf?oneValue=Hello%20World (unknown extension), skipping.
Второе обновление
После некоторого поиска я нашел способ установить правильный способ передачи переменных во встроенный SWF в swfmill output swf. Конечно, метод @little update был ужасно неправильным.
Теперь xml-код выглядит так:
<?xml version="1.0" encoding="iso-8859-1" ?>
<movie version="8" width="600" height="400" framerate="24">
<background color="#000000"/>
<frame>
<library>
<clip id="main" import="test.swf"/>
</library>
<DoAction>
<actions>
<Dictionary>
<strings>
<String value="_global"/>
<String value="aa"/>
<String value="Hello world"/>
<String value="bb"/>
<String value="image.jpg"/>
</strings>
</Dictionary>
<PushData>
<items>
<StackDictionaryLookup index="0"/>
</items>
</PushData>
<GetVariable/>
<PushData>
<items>
<StackDictionaryLookup index="1"/>
<StackDictionaryLookup index="2"/>
</items>
</PushData>
<SetMember/>
<PushData>
<items>
<StackDictionaryLookup index="0"/>
</items>
</PushData>
<GetVariable/>
<PushData>
<items>
<StackDictionaryLookup index="3"/>
<StackDictionaryLookup index="4"/>
</items>
</PushData>
<SetMember/>
<EndAction/>
</actions>
</DoAction>
<place id="main" />
</frame>
</movie>
и мой сценарий действий (AS 2.0) выглядит так:
_root.text_input.text = _global.aa;
loadMovie( _global.bb ,dropzone,'GET');
trace (_global.aa+' '+_global.bb);
Я получил структуру данных, которую вы видите в xml, используя swfmill swf2xml test2.swf
, где test2.swf содержит следующую декларацию в самом первом кадре:
_global.aa = 'Hello world';
_global.bb = 'someimage.jpg';
Каким-то образом, даже если это выглядит хорошо, оказывается, что переменные нельзя использовать в качестве глобальных переменных.