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

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

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

Регистрация: Sep 2008
Сообщений: 21
По умолчанию Часы+php Как сделать?

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

благодаря теме прочитанной на этом форуме я сделал аналоговые часы
осталось только задать как я понимаю первоначальную точку отчета

я начал размышлять и вот к чему пришел
нам необходимо:
Файл php который создает переменные времени и передает их swf
Файл swf в 3 кадра

1 кадр : принимаем данные от php
2 кадр : тут сами часы точнее +1 секунда (а лучше милисекунда)
3 кадр : перенаправляет на 2 кадр

как я собрался это осуществлять:
php:
PHP код:
<?php
    header
("Content-Type: text/html; charset=utf-8");                                 # Устанавливаем кодировку
    
    
$hour date('h');
    
$minute date('i');
    
$second date('s');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
    <head>
        <title>Форма дя отправки писем с сайта</title>

    </head>
    <body>
<object type="application/x-shockwave-flash" data="flash.swf" height="150" width="150">
        <param name="allowFullScreen" value="true" />
        <param name="url" value="clip.swf?hour=<?echo $hour?>&&minute=<?echo $minute?>&&second=<?echo $second?>">
    </object>
    </body>
</html>
далее
AS 1
Код AS1/AS2:
_root.loadVariables("index.php",GET);
 
	myDate = new Date();
	myDate.setHours(hour);
	myDate.setMinutes(minute);
	myDate.setSeconds(second);
AS 2
Код AS1/AS2:
var ticer:Number;
 
function tic():Void {
	hour = myDate.getHours();
	min = myDate.getMinutes();
	sec = myDate.getSeconds();
 
	var d:Date = new Date();
	sec._rotation = sec.text * 6 + d.getMilliseconds()/160 + 180;
	min._rotation = min.text * 6 + sec.text()/10+180;
	hour._rotation = hour.text * 30 + min.text/2+180;
}
 
ticer = setInterval(tic,1);
AS 3
ТУТ goto к второму кадру



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

Спасибо!

Старый 28.08.2010, 14:55
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 2  
Ответить с цитированием
in4core
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Смешно как то написали про АS1 ... 3 так вообще то версии языков называются_)))

По теме. Бедлам. Пишется все в одном кадре. Использовать LoadVars вопервых. Затем сделать коллбек на загрузку, после чего включить часы, и обновлять. Да и кстати пхп не нужен для создания ( если конечно не будет предложено пользователю выбирать точку отсчета САМОСТОЯТЕЛЬНО и каждый раз новую). В другом случаем можено xml или вообще txt

Старый 28.08.2010, 20:38
Remka вне форума Посмотреть профиль Отправить личное сообщение для Remka Найти все сообщения от Remka
  № 3  
Ответить с цитированием
Remka

Регистрация: Sep 2008
Сообщений: 21
Так я не понял немного

что за коллбек?

тоесть я оставляю php как есть
а в AS пишу примерно следующее

Код AS1/AS2:
_root.LoadVars("index.php",GET);
	myDate = new Date();
	myDate.setHours(hour);
	myDate.setMinutes(minute);
	myDate.setSeconds(second);
 
var ticer:Number;
 
function tic():Void {
	var d:Date = new Date();
	sec._rotation = d.getSeconds() * 6 + d.getMilliseconds()/160 + 180;
	min._rotation = d.getMinutes() * 6 + d.getSeconds()/10+180;
	hour._rotation = d.getHours() * 30 + d.getMinutes()/2+180;
}
 
ticer = setInterval(tic,1);
Вот как дальше действовать?
Я понимаю что сейчас в AS написан бред мне просто надо знать куда засунуть коллбэг и как его прописать

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

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
))) Смешной ты. Пишешь всякую ерунду.
Код AS1/AS2:
var lv:LoadVars
var sl:LoadVars
function createTimer() {
 lv= new LoadVars();//получатель
 sl= new LoadVars();// отправитель
sl.protect = 'protected';
sl.sendAndLoad('index.php',lv,'POST'); // если ниче не отправляешь то отправителя не надо и сипользовать метод load
lv.onLoad = mx.utils.Delegate.create(this,timeStart);
}
function timeStart() {
delete lv.onLoad;
// далее впихиваем свои переменные и запускаем часы по своему интервалу, только интервал = 1000 а не 1 как у тебя. 
}
createTimer();

Старый 30.08.2010, 21:55
Remka вне форума Посмотреть профиль Отправить личное сообщение для Remka Найти все сообщения от Remka
  № 5  
Ответить с цитированием
Remka

Регистрация: Sep 2008
Сообщений: 21
Я всеравно непонял=(

На теории:
Мы в php приписываем 3 переменные

на сколько я понял это делается так
PHP код:
<param name="url" value="clip.swf?hour=10&&minute=10&& second=10"
и во флеше мы должны получить
hour равная 10
minute равная 10
second равная 10

дальше во Flash мы должны это получить
для этого пишем вот это
Код AS1/AS2:
var lv:LoadVars
var sl:LoadVars
function createTimer() {
 lv= new LoadVars();//получатель
 sl= new LoadVars();// отправитель
sl.protect = 'protected';
sl.sendAndLoad('index.php',lv,'POST'); // если ниче не отправляешь то отправителя не надо и сипользовать метод load
lv.onLoad = mx.utils.Delegate.create(this,timeStart);
}
Тоесть тут мы получили данные из index.php

а вот дальше как я не могу понять
тоесть мы должны прописать дату с которой часы тикать начнут
после чего запустить часы

Создать новую тему Ответ Часовой пояс GMT +4, время: 14:28.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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