Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Интеграция Flash с... (http://www.flasher.ru/forum/forumdisplay.php?f=2)
-   -   Проблема с HTML и JavaScript'ом (http://www.flasher.ru/forum/showthread.php?t=32590)

Nirva 04.06.2002 06:55

Проблема с HTML и JavaScript'ом
 
Такая штука - мне надо было вставить в страницу со флешом (уже в HTML) JavaScript. Там просто рандомом в тело документа надо было вставить текст. Простенько, яно! НО! Даже с помощью абсолютного позиционирования не получается. Флеш идет сверху. Как поместь так, что бы надпись была как бы слоем над? Или как это сделать с помощью экшн-скрипта? Задание такое - надо что бы в заголовок (там идет тело флеша) вставить текст, котрые выбирается рандомом из перечисленного. Это сделан с помощью массива. если надо - вставлю сам пример полностью. Помогите, умоляю!
Заранее блгагодарен. :)

lizergil 05.06.2002 04:24

давай примерчик конечно :cool:

Nirva 05.06.2002 06:11

Примерчик
 
Ну, во-первых, спасибо за помощь.
Огромное такое спасибо.
Теперь конкретно:
Мне нужно было сделать так:
я раньше писал отдельный файл с JavaScript'ом. Он выглядел так:
-----------------------(==random.js==)
a = new Array(7);
a[0]="<b>Нельзя впихать невпихуемое!</b><br><i>Народное творчество</i>";
a[1]="<b>Он ударил тебя по щеке,- отруби ему руки!</b><br><i>Из личных соображений</i>";
a[2]="<b>Поспешишиь - успеешь, но не туда, куда нужно.</b><br><i>Аквит</i>";
a[3]="<b>Власть - это то, от чего отказываются честные люди.</b><br>Аквит<i></i>";
a[4]="<b>Настроение бывает не только плохое, но и ужасное, как и всяческое проявление идиотизма.</b><br>Аквит - народная глупость<i></i>";
a[5]="<b>Это тебе не шубу в трусы заправлять!</b><br><i>Кролм</i>";
a[6]="<b>Я не пил целый месяц! Какая сила воли!</b><br><i>Барсук</i>";

now= new Date();
i = now.getSeconds() % 7;
document.write(a[i]);
----------------------
потом в тело HTML-страницы, там где мне это нужно вставлял код:
<script language="javascript" src="random.js"></script>
с помощью абсолютного позиционирования задавал координаты, и в конце концов получал рандомом высвечивающиеся мысли. (для примера можешь зайти на ddtworld.spb.ru, там размышления шевчука таким образом вставляются)
Теперь возникла неоюходимость вставить это или во Флеше со помощью ActionScript'а, которого я к сожалению еще не знаю. Или же поверх с помощью все того же позиционирования (первый вариант предпочтительней, так как то место куда вставить надо слложно расчитать для разных разрешений экрана). Попробовал знакомый мне метод - с помощью позиционирования. Не выходит. Флеш ложиться поверх.
Помоги, коль можешь.

Crazy 05.06.2002 07:50

Флэшовый ролик не является HTML-объектом и не подчиняется правилам zindex-позиционирования DHTML. Существует решение, но оно привязано к версии браузера, что не есть гуд.

Профессор Выбегалло 05.06.2002 09:25

Зачем это делать через Ж:-)
 
Вообщем так, есть такая волшебная строка во Флеш swLiveconnect=TRUE
С ее помощью ты читаешь ВСЕ переменные из своей ХТМЛ странички во флеш. А потом просто присваиваешь нужную тебе динамическому текстовому полю.
Если совсем туго не разберешься - звякин 65-24-26 Саша, помогу с примером. Впрочем, когда ты сделаешь етот самый swLiveconnect=TRUE (это вовнутря тега EMBED), не забудь там же ему присвоить еще и имя ОБЯЗАТЕЛЬНО!!! Например - NAME="TEST"
Тогда переменная которую ты таки хочешь передать во флеш в твоем скрипте будет выглядеть примерно так:
<script>
var date_to_show = display_date();
window.document.TEST.SetVariable("txt2",date_to_show);
</script>
Где "txt2" это имя твоей переменной ВО ФЛЕШ, не перепутай:-) Ну думаю разберешься, ежели нет - звони.

Crazy 05.06.2002 10:49

Re: Зачем это делать через Ж:-)
 
Цитата:

Оригинал написал(а) Профессор Выбегалло
Вообщем так, есть такая волшебная строка во Флеш swLiveconnect=TRUE
С ее помощью ты читаешь ВСЕ переменные из своей ХТМЛ странички во флеш.

...и поиметь жесткое ограничение на список поддерживаемых тэгов, а заодно попрощаться с CSS. Очень печальное решение. В отличие от.

SPV 05.06.2002 13:45

А зачем вообще помещать текст поверх флэша??? Не проще ли создать поле в самом флэше и грузить туда рандомный текст?

Nirva 06.06.2002 01:54

Spv!!!
Буду архиблагодарен, если поможешь. Напишешь как это делается. В этом -то и состоит суть вопроса.

Профессор Выбегалло 06.06.2002 05:27

Re: Re: Зачем это делать через Ж:-)
 
Цитата:

Оригинал написал(а) Crazy


...и поиметь жесткое ограничение на список поддерживаемых тэгов, а заодно попрощаться с CSS. Очень печальное решение. В отличие от.

Не понял, а это еще что за жесткое ограничение??? Тут конкретная задача. С помощью Ява скрипта выбирается рендомное выражение. Это выражение с помощью этого самого лайф коннект передается во Флеш, как символьная (текстовая) переменная. Полученная переменная вставляется в динамическое текстовое поле. В чем проблемы? При чем тут ЦСС и теги??? Ессно, еще проще это сделать в самом флеш, скрипт на 3 строки + количество фраз:) Однако если человек совсем экшн скрипт не знает??? Пусть через Яву вставляет, оно ему и на будущее пригодится ;)

Профессор Выбегалло 06.06.2002 05:29

4Крейзи. ЗЫ: Ты возможно имел в виду форматирование фонтов в флеш? Вопрос, что мешает ему задать шрифт в самом динамическом текстовом поле?

Crazy 06.06.2002 05:33

Я имел в виду, что Flash поддерживает использование HTML-разметки в текстовых полях, но в очень ограниченном виде. Если этого достаточно -- действительно лучше сделать во Flash'е.

SPV 06.06.2002 11:47

2Nirva
1. Создаёшь дин. текстовое поле во флэше и задаешь ему Variable какое-нить типа "tips". Можно ещё отметить галочку HTML (чтобы потом куски текста в этом поле жирным могли быть, другого шрифта и т.п.).
2. Во фрэйме (можно прямо в первом) вставляешь такой скрипт:
loadVariablesNum("tips/tip" add int(Math.random ()*10) add ".txt",0);
где 10 - это число возможных текстов.
3. Создаёшь рядом с SWFкой папочку "tips" и в ней для каждого текста свои файлы с именами tip0.txt , tip1.txt ... tip9.txt. Формат файла такой:
tips=Нельзя впихать невпихуемое! (Народное творчество)
Если на первом шаге была выставлена галочка HTML, то можно так:
tips=<b>Нельзя впихать невпихуемое!</b> <i>Народное творчество</i>

Nirva 07.06.2002 00:52

НЕТ! НЕТ! НЕТ!
 
Ну при чем тут текст! Я даже пример дал. При чем тут шрифт, совсем ламер, что ли?
Я ж сказал - КАК ВЫПОЛНИТЬ ЭТУ ПРОЦЕДУРУ ВО ФЛЕШЕ С ПОМОЩЬЮ ACTIONSCRIPT'а???
При чекм тут CSS? Кстати, если то что вы там писали блокирует CSS то на фиг надо, яих тоже использую.
Просто, ясно, а свели все в абсурд какой-то....
:)

Nirva 07.06.2002 00:55

SPV! Спасибо.
 
Спасибо хоть тебе. Я еще не пробовал, но обязательно. если получится - спасибо трижды.
А остальные - спасибо, конечно, но вопрос ну никак уж не в шрифтах...

Nirva 08.06.2002 02:01

СПАСИБОЧКИ!!!! Но....
 
SPV!
Огромное тебе спасибо.
Красотуля.
Все по полному вперед.
Но два вопроса:
можно ли в это поле вставить не стандартный шрифт и что для этого нужно(я имею ввиду будет ли шрифт отображаться у пользователя, если стоит флажок на НТML).
И второй - дело в том, что я это создал отдельным слоем общей анимации.
Как только анимация начинает повторяться слой перелоадивается, и выводит снова рандомный текст. Как этого избежать? Зациклить один слой и сделать статичными другие?
Заранее спасибо.


ВСЕМ СПАСИБО! Я ВАС ВСЕХ ЛЮБЛЮ!

Stary 17.06.2002 18:23

2Nirva

Вообще-то всяческую анимацию надо бы выносить в отдельные мувики, тогда она не будет тебе мешать использовать верхний уровень (_root). Тогда у тебя основной фильм будет стоять (stop()), а анимация - вращаться в мувах, никому не мешая). Можно сделать наоборот: выдели свое текстовое поле, сделай из него мувик - F8 - movieclip. Помести этот мувик в отдельный слой (например - самый верхний). Вместо loadVariablesNum используй загрузку переменных в конкретный мувик - тот самый, что ты только что создал (не забудь его назвать). Синтаксис не помню - посмотри в конструкторе Флеша. Наконец, сделай так, чтобы этот слой имел один ключевой кадр - в самом начале - и присутствовал на всем протяжении фильма (в последний кадр - F5). Должно работать.

2Профессор Выбегалло

То, что ты предлагаешь, НЕ РАБОТАЕТ в шестом нетскейпе, под Маком и, вероятно, еще в чем-нибудь.


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

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