![]() |
Передача значения переменной из JScript в AS
Короче, такая муть -->>
есть swf-ролик, в первом фрейме которго следующий скрипт: Код:
var proverka;Код:
document.setvar.SetVariable('proverka', true);В общем, значение переменная proverka не получает, а на хтмл-странице возникает сообщение об оштбке. В чем дело? |
что сообщает сообщение об ошибке? с помощью чего ты отслеживаешь переменную во флеше?
|
Цитата:
Цитата:
|
1)если document.setvar - null следовательно у тебя флеш-объект имеет другое имя в странице
2) отслеживать переменную надо либо с помощью watch либо - проверкой ее значения через промежутки времени (onEnterFrame) - потому что если ты просто передашь значение во флеш - ничего не произойдет: ну задастся она там, но так как у тебя такое событие как изменение значения переменной не определено - флеш ничего и делать не станет |
Дак как надо осуществить мою задумку?
|
Попробуй непосредственно из html передавать. Помоему тег такой <param name="flashvars" value="name=Ja-Ja&age=23&location=Russia"> он должен быть внутри тега object.Передает перемненные name,age,location в ролик.
|
Или прямо в AS сделать setInterval(), что мешает-то ?
|
смотри в хелпе watch - там все написано
|
а SetVariable, вроде как, только в IE работает...
а <param name="flashvars"... только константы может передавать, динамически её не поменять в уже сфомированной странице. И проверку на загрузку ролика именно с моей странице не получить... :( |
помойму вместо setvar надо указать object-id
|
Хм...
Код:
var myFlashMovie = document.getElementByID('myFlashMovieID'); |
object-id? так и написать или имя флешки сюда надо?
|
GAIKER, именно его...
undeddy, значение обджект айди :) |
извини, спросоня фигню сморозил :) перепутал id и classid
|
Хорошо, значение переменной передастся во Flash. А дальше что? Мне нужно, чтобы выполнился этот цикл:
Код:
if (proverka=true){ |
Это не цикл, ага ?
|
Да, это не цикл, я ошибся. Но все-таки, что надо сделать, чтобы выполнить эту задачу?
|
Цитирую:
Цитата:
|
Вот новый код:
Код:
stop(); |
Код:
... |
Не понял нового условия. Зачем вставлять префикс _root? И почему нету условия равенства логической величине true?
|
Цитата:
|
В том то все и дело, что не работает. Ничего не изменяется, если вставить префикс _root.
|
Значит надо вставить что-нибудь другое вместо _root.
Вот у тебя var proverka где( читай в каком клипе) записано, такой "префикс" и вставляй.... мона исчё где нибудь префиксов навтыкать, например, перед gotoAndStop(), а то бедный флэш устанет искать тот клип кому ентот goto предназначен, и где находиться эта var proverka :) |
Вот, я чуть-чуть переделал код:
Код:
_root.stop(); |
var _root.proverka;
если не работает значит строка из js не приходит. лови, трассируй, следи за процессом. |
Во-первых, var _root.proverka - это ерунда, так флэш ошибку выдает. А, во-вторых, я кажется понял проблему: значение true вообще не передается во флэш. В чем может быть причина, если на JS код такой:
Код:
document.flash.SetVariable('proverka', true); |
С этим
document.flash.SetVariable('proverka', true); у меня тоже такая проблема появилась, когда я 8-й плеер себе поставил. Не работает с локального компа :( С сервера работает, со старым плеером тоже работает, а с 8-м плеером на локальном компе не работает. Пока решение этой проблемы не нашел - лень искать... |
В том, что путь надо указывать правильно в слэш-формате.
|
Цитата:
типа так? Тоже не работает... А в старом плеере и так работало на локальном компе. Или по другому надо указывать? Можно пример? |
Самое интересное, что если во флеш передать строковое значение, например "true", то все работает, а если передать булеву величину, то все стопорится. Я выход нашел в том, чтобы во флеше сравнить не булевы величины, а строки.
|
| Часовой пояс GMT +4, время: 10:33. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.