|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
[+3 02.07.08]
Регистрация: Sep 2004
Сообщений: 86
|
пересчет высоты мувика с текстом для правильного скрола
здравствуйте.
есть код создания мувиклипа с картинками и текстом: function addText() { _root.base.text_mc.setMask(_root.scroll_mask); _root.scroll_mask._x = 0; _root.scroll_mask._y = 253; _root.scroll_mask._width = Stage.width - 20; _root.scroll_mask._height = Stage.height - 253 - 50; _root.scroll_line.swapDepths(1001); _root.scroll_mc.swapDepths(1002); _root.scroll_line._x = Stage.width - 30; _root.scroll_line._y = 253; _root.scroll_line._height = _root.scroll_mask._height - 10; _root.scroll_mc._x = Stage.width - 30; _root.scroll_mc._y = 253; if (_root.scroll_mask._height >= _root.base.text_mc._height) { _root.scroll_line._visible = false; _root.scroll_mc._visible = false; } else { _root.scroll_line._visible = true; _root.scroll_mc._visible = true; } var tY = 253; var tH = _root.scroll_line._height - _root.scroll_mc._height; var sHY = tY + tH; var varDif:Number = _root.base.text_mc._height; _root.scroll_mc.onPress = function() { this.startDrag(false, this._x, tY, this._x, sHY); this.onMouseMove = function() { _root.base.text_mc._y = - varDif * ((this._y - 253)/sHY) + 253; } }; _root.scroll_mc.onRelease = _root.scroll_mc.onReleaseOutside = function () { this.stopDrag(); delete this.onMouseMove; }; } my_XML = new XML(); my_XML.onLoad = xmlLoad; my_XML.ignoreWhite = true; function xmlLoad(success) { rootNode = ""; if (success) { rootNode = my_XML.firstChild.childNodes; nodeLength = rootNode.length; var arrItem = new Array(); var itemY = 0; _root.createEmptyMovieClip("base", 1); _root.base.swapDepths(1000); _root.base._x = 10; _root.base._y = 0; _root.base.createEmptyMovieClip("text_mc", 2); _root.base.text_mc._y = 253; for (var i = 0; i < nodeLength; i++) { _root.base.text_mc.attachMovie("imgToload", "imgToload" + i, i); _root.base.text_mc["imgToload" + i].loadMovie(rootNode[i].attributes.imgLink); _root.base.text_mc.attachMovie("txt", "txt" + i, 1000 + i); _root.base.text_mc["txt" + i].txt.html = true; _root.base.text_mc["txt" + i].txt.multiline = true; _root.base.text_mc["txt" + i].txt.autoSize = true; _root.base.text_mc["txt" + i].txt.htmlText = rootNode[i].firstChild.nodeValue; var imgW:Number = (Number(rootNode[i].attributes.imgWidth)); if (rootNode[i].attributes.imgWidth == undefined) { _root.base.text_mc["txt" + i].txt._x = _root.base.text_mc._x; _root.base.text_mc["txt" + i].txt._y = _root.base.text_mc._y + 10 + itemY - 253; arrItem.push(_root.base.text_mc["txt" + i]); _root.base.text_mc["txt" + i].txt._width = Stage.width - 80; } else { _root.base.text_mc["imgToload" + i]._x = _root.base.text_mc._x; _root.base.text_mc["imgToload" + i]._y = _root.base.text_mc._y + 10 + itemY - 253; arrItem.push(_root.base.text_mc["txt" + i]); _root.base.text_mc["txt" + i].txt._width = Stage.width - rootNode[i].attributes.imgWidth - 80; _root.base.text_mc["txt" + i].txt._x = imgW + 30; _root.base.text_mc["txt" + i].txt._y = _root.base.text_mc["imgToload" + i]._y; } var textFormat:TextFormat = new TextFormat (Eurostile, 12, 0x666666); _root.base.text_mc["txt" + i].txt.setTextFormat(textFormat); if (_root.base.text_mc["txt" + i].txt._height > rootNode[i].attributes.imgHeight || rootNode[i].attributes.imgWidth == undefined) { itemY = itemY + _root.base.text_mc["txt" + i].txt._height + 20; } else { itemY = itemY + (Number(rootNode[i].attributes.imgHeight)) + 20; } } trace(arrItem) addText(); } else { _root.errorTxt = "Can't load file. Please, try latter."; } } my_XML.load("data/" + _global.xmlToLoad); вот ссылка на рабочий файл: http://elzone.net/test/ignat/work5.swf (можно проверить изменив размеры браузера и перегрузив страницу) в чем трабла, может кто подскажет. Последний раз редактировалось elzone; 04.11.2009 в 10:58. |
|
|||||
Регистрация: Apr 2007
Сообщений: 1,369
|
http://elzone.net/test/ignat/work5.swf, а не http://elzone.net/test/ignat/work4.swf
Походу при Stage.onResize неправильно пересчитывается _root.scroll_line._height тут:
__________________
john |
Часовой пояс GMT +4, время: 12:10. |
|
« Предыдущая тема | Следующая тема » |
|
|