PDA

Просмотр полной версии : Инициализация, подгрузка - всё внутри: как создать автономный клип?


Nafiganado
20.05.2004, 20:28
Что-то никак сообразить не могу, как такое оптимальным образом реализовать...

В общем, пока есть на осн. временной шкале мувиклип, состоящий из текст.поля и самодельного скроллера.
В это текст. поле подгружает внешний файл.

Но в таком виде все хоть и работает, но коряво выглядит: к примеру, переменные для мувиклипа объявляются на основной шкале. Хотелось бы сделать мувик как можно более автономный...

Попробовал включить этот мувик в другой, новый мувик, состоящий из 2 кадров: первый кадр - скриптовой (инициализация всех переменных, загрузка данных), а второй - тот, на котором появляется изображение и делается stop().

НО я запутался с таймлайнами... :( Например, для того, чтобы в первом кадре в текст. поле загрузить данные, клип уже должен быть в этом кадре. А нафиг он мне там нужен? Я, конечно, могу установить для него в первом кадре свойство invisible, но это как-то опять-таки коряво... Кроме того, если он будет в первом кадре, то вложенные клипы (мои скроллерские кнопки) тоже будут в этом первом кадре проигрываться (т.е. будут вызываться события, которые я для них задал, хотя этот тоже совершенно не нужно). Значит, нужно делать лишние проверки...

Я знаю, что есть gotoAndPlay, gotoAndStop, loadMovie...

Но не могу сообразить, как в данном случае всё правильно реализовать... Мысли разбегаются - а толку чуть... :(

Nafiganado
20.05.2004, 21:29
Удалось упорядочить и сварганить автономный клип, но есть одно недоразумение.
После подгрузки данных из файла размер шрифта в текстовом поле принимает невероятные размеры (хотя я задал CSS-стиль) - непонятно, как он вообще его высчитывает. А само же текстовое поле почему-то начинает смещаться и изменять свои размеры. Путем экспериментов удалось это побороть, но выглядит код не ахти:

var btnDown_down = false, btnUp_down = false, btnScroll_down = false, realTextHeight = 0, neverComeHereAgain = false, prevY = 0;
var CSS_style = new TextField.StyleSheet();
this._visible = false;
this.scroller._visible = false;
CSS_style.load("style.css");
this.textArea.styleSheet = CSS_style;
paga = new LoadVars();
paga.onLoad = onText;
paga.load("data.txt");
stop();

function onText() {
textArea.htmlText = paga.DisplayIt;
textArea._xscale = 100;
textArea._yscale = 100;
textArea._width = 400;
textArea._height = 300;
textArea._x = 0;
textArea._y = 0;
_visible = true;
}

Может, кто знает, как не задавать в функции onText() все эти параметры и получить нормальный шрифт в textArea (на самом деле textArea - это dynamic text, не путать с компонентом textArea!)