コード例 #1
0
    public string GetStyle_class_tag(string classname, hglParser.Element xe)
    {
        var curTag = xe != null ? xe.text : null;

        if (curTag == null)
        {
            return(null);
        }

        string s = null;

        if (string.IsNullOrEmpty(classname))
        {
            s = KEYVAL.Find(curTag, m_list);
        }
        if (s == null)
        {
            s = KEYVAL.Find(curTag + "." + classname, m_list);
        }
        if (s == null)
        {
            s = KEYVAL.Find("." + classname, m_list);
        }

        return(s);
    }
コード例 #2
0
        IEnumerator SLIDE_SUB(hglParser.Element e, int validDepth)
        {
            if (e == null || e.tmp1 == null || e.tmp2 == null || e.tmp3 == null)
            {
                yield break;
            }
            float interval = (float)e.tmp2;
            float time     = (float)e.tmp3;
            int   depth    = (int)e.tmp4;

            if (validDepth > 0 && depth > validDepth)
            {
                yield break;
            }

            yield return(new WaitForSeconds(interval));

            Vector3[] vs = (Vector3[])e.tmp1;

            if (e.bone1 != null)
            {
                m_scrObj.StartCoroutine(hgMove.linear_Vector3(e.bone1.transform.localPosition, vs[0], time, (vx) => { e.bone1.transform.localPosition = vx; }));
            }
            if (e.bone2 != null)
            {
                m_scrObj.StartCoroutine(hgMove.linear_Vector3(e.bone2.transform.localPosition, vs[1], time, (vx) => { e.bone2.transform.localPosition = vx; }));
            }
        }
コード例 #3
0
 public void CommentWork(hglParser.Element xe)
 {
     if (xe.parent != null && xe.parent.baseBody != null)
     {
         hglBaseHead tag = (hglBaseHead)xe.parent.baseBody;
         tag.CommentWork(xe.text);
     }
 }
コード例 #4
0
 public void EndElementWork(hglParser.Element xe)
 {
     if (xe.baseBody != null)
     {
         hglBaseHead tag = (hglBaseHead)xe.baseBody;
         tag.EndElementWork();
     }
 }
コード例 #5
0
 public void TextWork(hglParser.Element xe)
 {
     if (xe.parent != null && xe.parent.baseBody != null)
     {
         hglBaseHead tag = (hglBaseHead)xe.parent.baseBody;
         var         nt  = hglEtc.decodeTextToDisplay(xe.text);
         tag.TextWork(nt);
     }
 }
コード例 #6
0
 public void Init(hglParser.Element xe)
 {
     m_xe         = xe;
     m_a          = xe.GetAnchor();
     m_colorMan   = xe.GetTags().m_htmlRender.m_htmlColor;
     m_colorIndex = xe.colorIndex;
     m_col        = m_colorMan.GetColor(m_colorIndex);
     m_colSave    = m_col;
 }
コード例 #7
0
    public void ElementWork(hglParser.Element xe)
    {
        hglBaseHead work = (hglBaseHead)m_tags[xe.text];

        if (work != null)
        {
            hglBaseHead tag = work.Clone();
            xe.baseBody = tag;
            tag.ElementWork(xe.attrib);
        }
    }
コード例 #8
0
    public void SetTR(hglParser.Element xe)
    {
        m_cur_y = m_cur_y < 0 ? 0 : m_cur_y + 1;
        m_cur_x = 0;
        Element e = new Element()
        {
            mode = Element.Mode.TR, xe = xe, calcSize = Vector2.zero
        };

        m_baseTable.AddElement(m_cur_x, m_cur_y, e);
        m_cur_x++;
    }
コード例 #9
0
        IEnumerator FX_SZ_sub(hglParser.Element e, float speed, float maxscale)
        {
            if (e.bone1 != null)
            {
                float d = 0;
                while (true)
                {
                    d += speed * Time.deltaTime;
                    yield return(null);

                    e.bone1.transform.localScale = (1 + maxscale * Mathf.Sin(d * Mathf.Deg2Rad)) * Vector3.one;
                }
            }
        }
コード例 #10
0
        IEnumerator SLIDEBACK_SUB(hglParser.Element e, float time)
        {
            float interval = (e.tmp2 != null) ? (float)e.tmp2 : 0;

            if (interval > 0)
            {
                yield return(new WaitForSeconds(interval));
            }
            if (e.bone1 != null)
            {
                m_scrObj.StartCoroutine(hgMove.linear_Vector3(e.bone1.transform.localPosition, e.bone1_savepos, 0.1f + (float)0.1f, (v) => { e.bone1.transform.localPosition = v; }));
            }
            if (e.bone2 != null)
            {
                m_scrObj.StartCoroutine(hgMove.linear_Vector3(e.bone2.transform.localPosition, e.bone2_savepos, 0.1f + (float)0.1f, (v) => { e.bone2.transform.localPosition = v; }));
            }
        }
コード例 #11
0
        IEnumerator FX_COL_sub(hglParser.Element e, string mode, Color dst, float speed)
        {
            int index = -1;

            switch (mode)
            {
            case "main":  index = e.colorIndex;      break;

            case "back":  index = e.backcolorIndex;  break;

            case "frame": index = e.frameColorIndex; break;

            case "effect": index = e.effectColorIndex; break;
            }
            if (index < 0)
            {
                yield break;
            }

            hglHtmlColor htmlColor = null;
            {
                var render = m_renderInfo.GetRender();
                htmlColor = render.m_render.m_htmlColor;
            }

            Vector3 startColor = hglEtc.toVector3(htmlColor.GetColor(index));
            Vector3 endColor   = hglEtc.toVector3(dst);

            float i = 0;

            while (true)
            {
                yield return(null);

                i += speed * Time.deltaTime;
                float h   = 0.5f + 0.5f * Mathf.Sin(i * Mathf.Deg2Rad);
                var   cur = Vector3.Lerp(startColor, endColor, h);
                htmlColor.SetColor(index, hglEtc.toColor(cur));
            }
        }
コード例 #12
0
    public void SetTD(hglParser.Element xe, int colspan, int rowspan)
    {
        if (m_cur_y < 0 || m_cur_x <= 0)
        {
            throw new SystemException("Unexpected!");
        }
        Element e = new Element()
        {
            mode = Element.Mode.ORIGINAL, xe = xe
        };

        while (m_baseTable.GetPoint(m_cur_x, m_cur_y) != null)
        {
            m_cur_x++;
        }
        m_baseTable.AddElement(m_cur_x, m_cur_y, e);
        if (colspan > 1)
        {
            for (int ix = 1; ix < colspan; ix++)
            {
                if (rowspan > 1)
                {
                    for (int iy = 1; iy < rowspan; iy++)
                    {
                        Element se = new Element()
                        {
                            mode = Element.Mode.SPAN, original = e
                        };
                        m_baseTable.AddElement(m_cur_x + ix, m_cur_y + iy, se);
                    }
                }
            }
        }
        if (colspan > 1)
        {
            m_cur_x += colspan - 1;
        }
    }
コード例 #13
0
    public static string[] GetAllFilenames(hglParser.Element root)
    {
        string[]         allowexts = new string[] { ".txt", ".png", ".css", ".js", ".gif", ".jpg" };
        HashSet <string> files     = new HashSet <string>();

        Action <string> check = (s) => {
            foreach (var t in allowexts)
            {
                if (hglEtc.check_tail(s, t))
                {
                    files.Add(s);
                    break;
                }
            }
        };

        hglParser.TraverseHglWork(root, (e) => {
            if (e.mode != hglParser.Mode.TAG)
            {
                return;
            }
            if (e.text == "link")
            {
                check((string)e.attrib["href"]);
                check((string)e.attrib["src"]);
            }
            else if (e.text == "img")
            {
                check((string)e.attrib["src"]);
            }
        });

        string[] ans = new string[files.Count];
        files.CopyTo(ans);

        return(ans);
    }
コード例 #14
0
        IEnumerator FX_ROT_sub(hglParser.Element e, string pivot, float speed)
        {
            Vector3 pv = Vector3.up;

            switch (pivot)
            {
            case "x": pv = Vector3.right;   break;

            case "y": pv = Vector3.up;      break;

            case "z": pv = Vector3.forward; break;
            }

            if (e.bone1 != null)
            {
                while (true)
                {
                    var v = speed * Time.deltaTime;
                    yield return(null);

                    e.bone1.transform.RotateAroundLocal(pv, v);
                }
            }
        }
コード例 #15
0
        IEnumerator FX_ALFA_sub(hglParser.Element e, string mode, float speed)
        {
            if (e.mode == hglParser.Mode.TAG && e.text == "img" && e.bone1.renderer != null)
            {
                var   mat = e.bone1.renderer.material;
                float i   = 0;
                while (true)
                {
                    yield return(null);

                    i += speed * Time.deltaTime;
                    float h = 0.5f + 0.5f * Mathf.Cos(i * Mathf.Deg2Rad);
                    mat.SetFloat("_Alpha1", h);
                }
            }
            else if (e.mode == hglParser.Mode.TAG && e.text == "body")
            {
                var   mat = m_renderInfo.GetRender().renderer.material;
                float i   = 0;
                while (true)
                {
                    yield return(null);

                    i += speed * Time.deltaTime;
                    float h = 0.5f + 0.5f * Mathf.Cos(i * Mathf.Deg2Rad);
                    mat.SetFloat("_Alpha", h);
                }
            }
            else
            {
                int index = -1;
                switch (mode)
                {
                case "main":  index = e.colorIndex;      break;

                case "back":  index = e.backcolorIndex;  break;

                case "frame": index = e.frameColorIndex; break;

                case "effect": index = e.effectColorIndex; break;
                }
                if (index < 0)
                {
                    yield break;
                }

                hglHtmlColor htmlColor = null;
                {
                    var render = m_renderInfo.GetRender();
                    htmlColor = render.m_render.m_htmlColor;
                }

                var   col = htmlColor.GetColor(index);
                float i   = 0;
                while (true)
                {
                    yield return(null);

                    i += speed * Time.deltaTime;
                    float h = 0.5f + 0.5f * Mathf.Cos(i * Mathf.Deg2Rad);
                    col.a = h;
                    htmlColor.SetColor(index, col);
                }
            }
        }
コード例 #16
0
    IEnumerator HglReadFlow(string i_file, bool viewSrc)
    {
        m_winInfo.m_curRootElement = null;
        m_winInfo.m_curHeadElement = null;
        m_winInfo.m_curBodyElement = null;

        string file1;

        if (string.IsNullOrEmpty(i_file))
        {
            yield break;
        }


        if (hglEtc.check_head(i_file, "http"))
        {
            file1 = i_file;
        }
        else
        {
            file1 = (new System.IO.FileInfo(i_file)).FullName.Replace('\\', '/');
        }

        {
            var i = file1.LastIndexOf('/');
            m_winInfo.m_curBaseUrl = file1.Substring(0, i + 1);
            m_winInfo.m_curUrl     = file1;
        }

        string src = m_resman.GetText(file1);

        if (src == null)
        {
            if (m_winInfo.m_useText && m_winInfo.m_curUrlShort == m_winInfo.m_url)
            {
                src = m_winInfo.m_text;
                m_resman.Register(m_winInfo.m_url, file1, m_winInfo.m_text);
            }
            else
            {
                var fd = m_resman.Register(m_winInfo.m_curUrlShort, file1);
                if (fd.obj == null && fd.isNet)
                {
                    yield return(StartCoroutine(m_resman.ReadNet(fd, this)));
                }
                src = (string)fd.obj;
            }
        }

        hglParseStyleSheet hglStyleSheet = new hglParseStyleSheet();

        hglTags_head tagsHead     = new hglTags_head();
        hglWorkHead  hglwork_head = new hglWorkHead();

        hglWorkBody hglwork_body = new hglWorkBody();

        tagsHead.Init(hglwork_head, hglStyleSheet, m_resman, m_winInfo);

        if (ReadResource1(src))
        {
            yield return(StartCoroutine(m_resman.ReadAllNet(this)));
        }

        hglParser.Element root = null;
        hglParser.Element head = null;
        hglParser.Element body = null;

        if (!viewSrc)
        {
            yield return(StartCoroutine(m_xmlScript.Init()));

            string src_output = hglParserScript.ParserScript(src, (s) => m_xmlScript.RunProgram(s));
            if (ReadResource1(src_output))
            {
                yield return(StartCoroutine(m_resman.ReadAllNet(this)));
            }

            root = hglParser.Parser(src_output);

            head = hglParser.FindTag("head", root);
            body = hglParser.FindTag("body", root);

            if (head != null)
            {
                hglParser.TraverseHglWorkHead(head, hglwork_head);
            }
            if (body == null)
            {
                body = root;
            }
        }
        else
        {
            body = hglParser.CreateRowText(src);
            root = body;
        }
        root.thisStyle.Set(StyleKey.font_size, 20);
        root.thisStyle.SetColor(StyleKey.color, Color.black);
        root.thisStyle.SetColor(StyleKey.background_color, Color.white);
        root.thisStyle.Set(StyleKey.margin, "");
        root.thisStyle.Set(StyleKey.text_align, "");
        root.thisStyle.Set(StyleKey.line_height, 2f);
        root.thisStyle.Set(StyleKey.width, m_winInfo.m_fixedWidth);

        if (m_winInfo.m_winType == hglWindowType.MAIN)
        {
            m_winInfo.m_mainCamera.camera.backgroundColor = root.thisStyle.GetColor(StyleKey.background_color);
        }

        //while (true)
        {
            hgca.DestroyAllChildren(gameObject);
            yield return(null);

            CreateRenerObj();
            yield return(null); //create

            yield return(null); //exec start

            hglTags_body tagsBody = new hglTags_body();
            tagsBody.Init(hglwork_body, hglStyleSheet, m_winInfo, m_rendere.m_render, m_resman);
            hglParser.TraverseHglWorkBody(body, hglwork_body);
            m_rendere.m_render.OutputRendering(m_rendere.gameObject);
        }

        hglParser.SavePositions(body);

        m_winInfo.m_curRootElement = root;
        m_winInfo.m_curHeadElement = head;
        m_winInfo.m_curBodyElement = body;

        {
            var jsobjs = GetComponentsInChildren <xmlScriptObj>();
            foreach (var jo in jsobjs)
            {
                jo.m_valid = true;
            }
        }
    }