Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 18.11.2009, 07:47
Cristina.32 вне форума Посмотреть профиль Отправить личное сообщение для Cristina.32 Найти все сообщения от Cristina.32
  № 1  
Ответить с цитированием
Cristina.32

Регистрация: Nov 2009
Сообщений: 20
По умолчанию О Flash вставках на сайте

Здравствуйте!
Облазили много форумов Никто так вменяемого ответа и не дал. Неужели это настолько сложно?
Проблема следующая:
на сайте имеется *.swf со стартовой анимацией, при каждом обновлении страницы, (либо переходе на другую страницу сайта) *.swf загружается заново и заново показавает свою стартовую анимацию.

Можно ли и каким образом сделать так чтобы *.swf не обновлялся каждый раз вместе со страницей,
НО при этом загружался только при переходе по ссылке (к примеру) на главную страницу?
Заранее благодарю

Старый 18.11.2009, 10:10
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Можно.
Нужно придумать, где хранить данные об актуальном состоянии флешки и организовать проверку этих данных при ее очередной загрузке. Загрузка же, в свою очередь, должна быть организована с учетом этих данных. Если в данных отмечено, что, скажем, со страницы ушли, когда флешка находилась на 425 кадре, то при загрузке она должна будет стартовать с 426. Или, по вашему обстоятельству, просто записывать инфу о том, что стартновая анимация уже проиграна, и загружать флешку уже с первого рабочего кадра.
Запоминание можно организовать либо через класс SharedObject, либо задействовать php-шный механизм сессий.


Последний раз редактировалось mooncar; 18.11.2009 в 10:13.
Старый 18.11.2009, 12:13
Cristina.32 вне форума Посмотреть профиль Отправить личное сообщение для Cristina.32 Найти все сообщения от Cristina.32
  № 3  
Ответить с цитированием
Cristina.32

Регистрация: Nov 2009
Сообщений: 20
А можно ли эти данные передавать к примеру переменным JavaScript и обратно?

Старый 18.11.2009, 12:30
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 4  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Передавать данные в JS? А что с ними сделает функция JS? Таскать данные туда-сюда со страницы на страницу? Лучше уж использовать какое-то хранилище.
Вообще, для взаимодействия с JS страницы флеш может использовать класс ExternalInterface.


Последний раз редактировалось mooncar; 18.11.2009 в 12:34.
Старый 18.11.2009, 13:46
Cristina.32 вне форума Посмотреть профиль Отправить личное сообщение для Cristina.32 Найти все сообщения от Cristina.32
  № 5  
Ответить с цитированием
Cristina.32

Регистрация: Nov 2009
Сообщений: 20
Функция будет проверять с какой страницы пришел пользователь. Если со страниц A, B, C - то анимацию проигрывать сначала иначе - с N-го кадра.

Старый 18.11.2009, 14:52
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 6  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Тогда JS не нужно, вам самый простой способ - в коде публикации использовать параметр flashvars и указывать значение переменной, например, номер кадра с которой стартовать. Эту переменную флешка получит, и в зависимости от нее старт организуйте с нужного кадра. Синтаксис flashvars - поиском воспользуйтесь.

Старый 18.11.2009, 16:29
Cristina.32 вне форума Посмотреть профиль Отправить личное сообщение для Cristina.32 Найти все сообщения от Cristina.32
  № 7  
Ответить с цитированием
Cristina.32

Регистрация: Nov 2009
Сообщений: 20
Спасибо Вам, хоть один умный и вменяемый человек нашелся!!

Данные можно передать так:
HTML:
<param name="FlashVars" value="&var1='X'" />

FLASH:
on (release) {
myTxt=_root.var1;
getURL("http://"+myTxt, "_blank");
}

А Вот, как, наоборот из Flash в Html передать данные?

Т. е. конкретней, на сайт вставлено флеш-меню с кнопками, которые могут находится в триггерном состоянии (1-при наведении мыши, 2-активное, 3-е при "отведении" мыши)

Вот его собственно код:
Код AS3:
stage.frameRate = 30;
//---- добавляем кнопки к массиву --------
var buttonsArray:Array = [Box,Mma,Strong,Extreme,Samooborona];
//----цикл в массиве buttonsArray-----
//----установим некоторые свойства и добавим события кнопкам----
function setButtons():void {
 for (var i:int=0; i<buttonsArray.length; i++) {
  buttonsArray[i].id = i;
  buttonsArray[i].buttonMode = true;
  buttonsArray[i].mouseChildren = false;
  buttonsArray[i].mouseEnabled = true;
  buttonsArray[i].addEventListener(MouseEvent.ROLL_OVER,playOver);
  buttonsArray[i].addEventListener(MouseEvent.ROLL_OUT,playOut);
  buttonsArray[i].addEventListener(MouseEvent.CLICK,doClick);
 }
}
//----выполняется, когда мышь наводится над кнопкой----
function playOver(event:MouseEvent):void {
 event.currentTarget.gotoAndPlay("over");
}
//----выполняется, когда мышь уходит с кнопки----
function playOut(event:MouseEvent):void {
 event.currentTarget.gotoAndPlay("out");
}
//----выполняется, когда мышь кликает кнопку-----
function doClick(event:MouseEvent):void{
  //----установим переменную currentBtn равную----- 
//----идентификатору кнопки (id) , которая была кликнута-----
  var currentBtn:int = event.currentTarget.id;
  //----вызываем функцию setSelectedBtn
  setSelectedBtn(currentBtn);
}
/*проверим, какая кнопка была кликнута,
если id , переданная в функцию setSelectedBtn,
идентична id кликнутой кнопки,
мы полагаем, что кнопки находятся в положении нажатой down (выделенная)
и удаляем все события, добавленные к ней*/  
function setSelectedBtn(id:int):void{
 for (var i:int=0; i< buttonsArray.length; i++) {
  if (id == i) {
  buttonsArray[i].gotoAndStop("down");
  buttonsArray[i].buttonMode = false;
  buttonsArray[i].mouseEnabled = false;
  buttonsArray[i].removeEventListener(MouseEvent.ROLL_OVER,playOver);
  buttonsArray[i].removeEventListener(MouseEvent.ROLL_OUT,playOut);
  buttonsArray[i].removeEventListener(MouseEvent.CLICK,doClick);
  } else {
  if(buttonsArray[i].currentLabel =="down"){
  buttonsArray[i].gotoAndPlay("out");
  }
  buttonsArray[i].buttonMode = true;
  buttonsArray[i].mouseEnabled = true;
  buttonsArray[i].addEventListener(MouseEvent.ROLL_OVER,playOver);
  buttonsArray[i].addEventListener(MouseEvent.ROLL_OUT,playOut);
  buttonsArray[i].addEventListener(MouseEvent.CLICK,doClick);
  }
 }
}
 setButtons();
(на каждом мувике еще ссылки на соответствующие разделы сайта)
Нужно естественно сделать так чтобы при переходе по ссылкам соответствующая кнопка меню как-будто оставалась активной.


Последний раз редактировалось Cristina.32; 18.11.2009 в 16:53.
Старый 18.11.2009, 16:55
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 8  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Передача данных из флеша на страницу - пример из хелпа:
HTML:
Код:
<script>
    function sayHello(name) {
        alert(">> Hello " + name + ".");
        return ">> Hi Flash.";
    }
</script>
Флеш, AS2:
Код AS1/AS2:
import flash.external.*;
 
var greeting:String;
btn.onPress = function() {
    greeting = String(ExternalInterface.call("sayHello", "browser"));
    this.mcTxt.text = greeting; // >> Hi Flash.
}
C AS3, к сожалению, пока не знаком, но класс ExternalInterface там точно есть


Последний раз редактировалось mooncar; 18.11.2009 в 17:06.
Создать новую тему Ответ Часовой пояс GMT +4, время: 08:39.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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