Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   странность с кодировкой UTF-8 (http://www.flasher.ru/forum/showthread.php?t=144647)

photojournalism 17.09.2010 13:28

странность с кодировкой UTF-8
 
Есть xml из которого вытаскивается текст

Код:

<menu name="ВЫАВЫАВЫА" url="" >
        <submenu_item name="ЫВАВЫАВЫАЫВА" url="galleries/gal.xml" ></submenu_item>
</menu>

xml сохранен в UTF-8

при этом, submenu_item name отображается нормально русскими буквами, а menu name пропадает, т.е не отображается,

как думаете, с чем это может быть связано?

P.S.
Во флэшке нет текстового поля для этих пунктов, т.е. сделать Character Embedding - нет никакой возможности.

спасибо

yorlin 17.09.2010 14:45

Не отображается где? Как вы обращаетесь к элементам xml? Если menu name сделать английским, то отображается?

photojournalism 17.09.2010 15:09

не отображается в swf

да, если menu name сделать английским - то все отображается

Добавлено через 1 минуту
меню выводится вот этим кодом

Код AS3:

 
import caurina.transitions.Tweener;
subspace = 18;
myXML = new XML();
myXML.ignoreWhite = true;
myXML.onLoad = function(success) {
        if (success) {
                readXmlData();
        }
};
this.createEmptyMovieClip("allMenus",1);
myXML.load(xml=_root.xmlFile ? _root.xmlFile : "galleries/menu.xml");
 
function readXmlData() {
 
        l = myXML.childNodes.length-1;
 
        _global.abouttitle = myXML.childNodes[l].childNodes[0].attributes.title;
        _global.abouttext = myXML.childNodes[l].childNodes[0].firstChild.nodeValue
 
        _global.adminmail = myXML.childNodes[l].childNodes[1].attributes.mail;
        _global.contacttitle = myXML.childNodes[l].childNodes[1].attributes.title;
        _global.contacttext = myXML.childNodes[l].childNodes[1].firstChild.nodeValue
 
        target = myXML.childNodes[l].attributes.target;
        collapse = myXML.childNodes[l].attributes.collapse;
        maincolor = myXML.childNodes[l].attributes.maincolor;
        subcolout = myXML.childNodes[l].attributes.subcolorout;
        subcolover = myXML.childNodes[l].attributes.subcolorover;
        menu = new Array(l);
        for (i=0; i<l; i++) {
                menu[i] = myXML.childNodes[i].attributes.name;
                addNewMenu();
                if (i == l-1) {
                        loadFirst();
                }
        }
}
 
function loadFirst() {
        allMenus["menu"+0].menu_txt.textColor = subcolover;
        mid = allMenus["menu"+0].id;
        sl = myXML.childNodes[mid].childNodes.length;
        for (j=0; j<sl; j++) {
                allMenus["menu"+0].subs.attachMovie("subMenuItem","sub"+j,j,{_y:0, id:j, pid:mid});
                Tweener.addTween(allMenus["menu"+0].subs["sub"+j],{time:.3, transition:"easeOutCirc", _y:(j+1)*subspace});
                allMenus["menu"+0].subs["sub"+j].menu_txt.autoSize = true;
                allMenus["menu"+0].subs["sub"+j].menu_txt.text = myXML.childNodes[mid].childNodes[j].attributes.name;
                allMenus["menu"+0].subs["sub"+j].bg_mc._width = allMenus["menu"+0].subs["sub"+j].menu_txt._width;
                allMenus["menu"+0].subs["sub"+j].onRelease = subrelease;
                allMenus["menu"+0].subs["sub"+j].onRollOver = subover;
                allMenus["menu"+0].subs["sub"+j].onRollOut = subout;
                allMenus["menu"+0].subs["sub"+j].menu_txt.textColor = subcolout;
        }
        allMenus["menu"+0].released = true;
        if (sl == 0) {
                loadGallery(myXML.childNodes[mid].attributes.url);
        } else {
                allMenus["menu"+0].subs["sub"+0].menu_txt.textColor = subcolover;
                allMenus["menu"+0].subs["sub"+0].rect_mc.gotoAndPlay("in");
                allMenus["menu"+0].subs["sub"+0].bg_mc.gotoAndPlay("in");
                loadGallery(myXML.childNodes[0].childNodes[0].attributes.url);
        }
        previd = mid;
        prevmenu = allMenus["menu"+0].bg_mc;
        prevsub = allMenus["menu"+0].subs["sub"+0];
        prevmenu.enabled = false;
        prevsub.enabled = false;
}
 
 
function addNewMenu() {
        allMenus.attachMovie("menuItem","menu"+i,i,{_y:i*31, id:i});
        allMenus["menu"+i].menu_txt.autoSize = true;
        allMenus["menu"+i].menu_txt.text = menu[i];
        allMenus["menu"+i].menu_txt.textColor = maincolor;
        allMenus["menu"+i].bg_mc._width = allMenus["menu"+i].menu_txt._width;
        allMenus["menu"+i].bg_mc.onRelease = menuRelease;
        allMenus["menu"+i].bg_mc.onRollOver = mainOver;
        allMenus["menu"+i].bg_mc.onRollOut = mainOut;
}
 
function menuRelease() {
        removeInfo();
        prevmenu._parent.menu_txt.textColor = maincolor;
        prevmenu.enabled = true;
        if (collapse == "true") {
                this.enabled = false;
                prevmenu.enabled = true;
                hl = myXML.childNodes[previd].childNodes.length;
                for (h=0; h<hl; h++) {
                        Tweener.addTween(prevmenu._parent.subs["sub"+h],{time:.3, transition:"easeOutCirc", _y:0, _alpha:0});
                }
                prevmenu.released = false;
        }
        mid = this._parent.id;
        sl = myXML.childNodes[mid].childNodes.length;
        if (this.released != true && sl>0) {
                for (i=0; i<sl; i++) {
                        this._parent.subs.attachMovie("subMenuItem","sub"+i,i,{_y:0, id:i, pid:mid});
                        Tweener.addTween(this._parent.subs["sub"+i],{time:.3, transition:"easeOutCirc", _y:(i+1)*subspace});
                        this._parent.subs["sub"+i].menu_txt.autoSize = true;
                        this._parent.subs["sub"+i].menu_txt.text = myXML.childNodes[mid].childNodes[i].attributes.name;
                        this._parent.subs["sub"+i].bg_mc._width = this._parent.subs["sub"+i].menu_txt._width;
                        this._parent.subs["sub"+i].onRelease = subrelease;
                        this._parent.subs["sub"+i].onRollOver = subover;
                        this._parent.subs["sub"+i].onRollOut = subout;
                        this._parent.subs["sub"+i].menu_txt.textColor = subcolout;
                }
                this.released = true;
        } else if (this.released == true) {
                for (j=0; j<sl; j++) {
                        Tweener.addTween(this._parent.subs["sub"+j],{time:.3, transition:"easeOutCirc", _y:0, _alpha:0});
                        this._parent.subs["sub"+j].enabled = false;
                }
                this.released = false;
        }
        if (sl == 0) {
                fadeOutElements();
                prevmenu.enabled = true;
                prevsub.enabled = true;
                prevsub.rect_mc.gotoAndStop("in");
                prevsub.menu_txt.textColor = subcolout;
                this.enabled = false;
                loadGallery(myXML.childNodes[mid].attributes.url);
        }
        previd = mid;
        prevmenu = this;
 
}
 
function subrelease() {
        removeInfo();
        fadeOutElements();
        if (collapse != "true") {
                prevmenu.enabled = true;
                prevmenu._parent.menu_txt.textColor = maincolor;
        }
        prevsub.rect_mc.gotoAndPlay("out");
        prevsub.menu_txt.textColor = subcolout;
        prevsub.enabled = true;
        this.enabled = false;
        prevsub = this;
        sid = this.id;
        msid = this.pid;
        surl = myXML.childNodes[msid].childNodes[sid].attributes.url;
        loadGallery(surl);
}
 
function fadeOutElements() {
        _root.nav_mc._visible = false;
        Tweener.addTween(_root.big_mc,{_x:Stage.width, time:.7, onComplete:moveBig});
        Tweener.addTween(_root.title_mc,{_y:Stage.height, time:.7});
}
function moveBig() {
        _root.big_mc._x = 0-_root.big_mc._width;
}
 
 
 
function subover() {
        this.menu_txt.textColor = subcolover;
        this.rect_mc.gotoAndPlay("in");
        this.bg_mc.gotoAndPlay("in");
}
 
function subout() {
        this.menu_txt.textColor = subcolout;
        this.rect_mc.gotoAndPlay("out");
        this.bg_mc.gotoAndPlay("out");
}
 
function mainOver() {
        this._parent.menu_txt.textColor = subcolover;
}
function mainOut() {
        this._parent.menu_txt.textColor = maincolor;
}


ZVEr13 17.09.2010 15:30

хмм... а какой шрифт используется в menuItem.menu_txt ? Он поддерживает русские символы?

photojournalism 17.09.2010 15:37

дык, если б я имел ум, то нашел бы - но я даже представления не имею, где искать - я купил этот шаблон для галереи и вот такая засада, все замечательно работает, но только по-английски
Дело в том, что для текста меню не используется текстовое поле во fla файле (так бы было все просто) и откуда он берет шрифты - одному создателю известно, я пересмотрел все файлы с расширением as - ни слова о шрифтах и кодировках
может, подскажите, где искать, хотя бы

спасибо

ZVEr13 17.09.2010 15:49

Код:

menu_txt.getTextFormat().font
Так можно узнать какой шрифт используется
Или как вариант создаете свой TextFormat и используете его:
Код:

myTextFormat = new TextFormat();
myTextFormat.font = 'Verdana';
menu_txt.setTextFormat(myTextFormat);


photojournalism 17.09.2010 15:53

Бинго! Спасибо всем огромное - навели на мысль - стал копать и обнаружил, что меню итем, в отличии от сабменю - сделан текстовым полем - добавил кириллицу - все заработало


Часовой пояс GMT +4, время: 07:18.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.