Просмотр полной версии : XML > Flash позиционирование изображений
Добрый день.
Есть файл XML, через который во Flash ролик подгружаются картинки со ссылками
код такой
<logo url="resources/tvnovosedlice.png" position="right middle" link="http://ya.ru" linktarget="_blank"/>
но как явно указать расположение картинок? Чтобы можно было их расположить не только по углам и центру.
undefined
29.06.2017, 21:26
это вопрос к тому,кто парсит эти xml и какие возможные значения position поддерживает.Или подгрузка идет не в флэш ролик, а в flash ide?
Хмм.. не знаю... в какую сторону хоть начинать копать, чтобы выяснить этот вопрос?
Есть один swf и несколько папок с файлами as. Где смотреть?
ZackMercury
29.06.2017, 21:49
В файлах .as искать место, где разбирается XML и на какие куски оно разбирает атрибут position.
undefined
29.06.2017, 23:05
Поищи в as файлах где встречается строка "right middle" где-то рядом должны быть и другие допустимые значения
спасибо за советы, нашел и почти получилось сделать, за исключением того, что теперь позиционировние задается только жестко через x y, а нужно, чтобы по горизонтали была относительная привязка right, а по вертикали уже устанавливалась вручную через XML.
нашел код в двух файлах, которые отвечают за парсинг и за отрисовку самого логотипа
код в них такой
в файле XMLLoader.as
...............
case "logo":
this.interfaceOptions.logos.push({
"url":"",
"position":[1,1],
"link":"",
"target":"_self"
});
..................
if(interfaceNode.childNodes[ii].attributes["position"] != undefined)
{
Pos = [0,0];
if(interfaceNode.childNodes[ii].attributes["position"].toLowerCase().search("left") >= 0)
{
Pos[0] = 0;
}
if(interfaceNode.childNodes[ii].attributes["position"].toLowerCase().search("center") >= 0)
{
Pos[0] = 1;
}
if(interfaceNode.childNodes[ii].attributes["position"].toLowerCase().search("right") >= 0)
{
Pos[0] = 2;
}
if(interfaceNode.childNodes[ii].attributes["position"].toLowerCase().search("top") >= 0)
{
Pos[1] = 0;
}
if(interfaceNode.childNodes[ii].attributes["position"].toLowerCase().search("middle") >= 0)
{
Pos[1] = 1;
}
if(interfaceNode.childNodes[ii].attributes["position"].toLowerCase().search("bottom") >= 0)
{
Pos[1] = 2;
}
/*старый код
this.interfaceOptions.logos[this.interfaceOptions.logos.length - 1].position = [Pos[0],Pos[1]];
*/
//новый код
this.interfaceOptions.logos[this.interfaceOptions.logos.length - 1].position = [Pos[0],interfaceNode.childNodes[ii].attributes["yposition"]];
........................................
в файле Logo.as
...................
public class Logo extends MovieClip
{
private var _position:Array;
private var _link:String;
private var _target:String;
private var _logoLoader:Loader;
private var _logoLoaderContext:LoaderContext;
public var loaded:Boolean = false;
private var mainApplication;
public function Logo(param1:String, param2:Array = null, param3:String = "", param4:String = "")
{
super();
this.mainApplication = DigitalBrochure.getInstance();
this._link = param3;
this._target = param4;
if(param2 == null)
{
this._position = [1,1];
}
else
{
/*старый код
this._position =param2;
*/
//новый код
this.x = 800;
this.y = param2[1]
}
.............
в файле Settings.xml
<logo url="resources/link_1.png" position="right" link="link_1" linktarget="_blank" yposition="50" />
<logo url="resources/link_2.png" position="right" link="link_2" linktarget="_blank" yposition="100" />
<logo url="resources/link_3.png" position="right" link="link_3" linktarget="_blank" yposition="150" />
<logo url="resources/link_4.png" position="right" link="link_4" linktarget="_blank" yposition="200" />
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.