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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.09.2009, 03:06
Чттос вне форума Посмотреть профиль Отправить личное сообщение для Чттос Посетить домашнюю страницу Чттос Найти все сообщения от Чттос
  № 1  
Ответить с цитированием
Чттос
 
Аватар для Чттос

Регистрация: Dec 2006
Адрес: mpl
Сообщений: 49
Отправить сообщение для Чттос с помощью ICQ
По умолчанию JS -> AS3 - принцип работы функции AS3

Здравствуйте.
я совсем недавно перешла на АS3, такчто сильно не ругайте. пытаюсь разобраться с эвентами в яваскрипте, которые потом вызывают функцию во флэше.
главный вопрос который меня мучает - это как работает потом эта вызванная функция? может ли она вызвать еще функции во флэше? вот код который я пишу в AS: яваскрипт говорит что изменен размер окна браузера, по этому эвенту я запускаю новую функцию tailleBrowser(), которая в свою очередь изменяет размер rond - объекта на сцене. Но эта функция (tailleBrowser) не запускается как быть? чего-то я не допонимаю. помогите пожалуйста!
Код AS3:
function tailleBrowser(){
	var reponse:Number=ExternalInterface.call("addNumbers");
	rond.width = reponse/10;
}
 
function resizeFenetre(name:String):String {
	tailleBrowser();
	return "ok";
}
 
ExternalInterface.addCallback("resizeFenetre", resizeFenetre);
код в html:
Код:
<script language="JavaScript" type="text/javascript">

function addNumbers(){
	w = document.body.clientWidth;
	return (w);
}

window.onresize = function(){
	var callResult = numbers.myFunction("resizeFenetre");
}
</script>
__________________
ЧунГачГучинА-а!

Старый 19.09.2009, 04:06
Stargazer вне форума Посмотреть профиль Отправить личное сообщение для Stargazer Найти все сообщения от Stargazer
  № 2  
Ответить с цитированием
Stargazer

Регистрация: Nov 2008
Сообщений: 528
Цитата:
numbers.myFunction("resizeFenetre")
Я вот эту часть не понимаю. Что за myFunction? (я по js не специалист, может просто не знаком с деталями)

Старый 19.09.2009, 04:16
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 3  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
1. document.body.clientWidth
- вы в курсе, что это не во всех браузерах работает?
2. вы нигде не вызываете никакие методы флешки, так что сложно сказать, что у вас не получается.
Ну и поставьте себе Фаирбаг, он вам ве расскажет лучше нас
Что еще приятнее, JS код можно писать прямо во флешке, а потом отдавать его яваскрипту на выполнение (так и кода меньше получится, да и приятно, когда контроль весь в одном месте).
__________________
Hell is the possibility of sanity

Старый 19.09.2009, 12:15
Чттос вне форума Посмотреть профиль Отправить личное сообщение для Чттос Посетить домашнюю страницу Чттос Найти все сообщения от Чттос
  № 4  
Ответить с цитированием
Чттос
 
Аватар для Чттос

Регистрация: Dec 2006
Адрес: mpl
Сообщений: 49
Отправить сообщение для Чттос с помощью ICQ
почти весь код яваскрипт я скопировала из хелпа, кроме некоторых деталей таких как document.body.clientWidth, но в ИЕ он работает, это точно (мне пока его достаточно)
честно говоря - я обыскалась как вставлять яваскрипт во флэш, нет ли у вас простого примера, плиз?
и еще, я просто начинаю сомневаться в работоспособности моей функции resizeFenetre. что я в нее не вставляю до строки return, ничего не срабатывает.
Цитата:
вы нигде не вызываете никакие методы флешки, так что сложно сказать, что у вас не получается.
а разве не достаточно просто изменить свойство чего-либо чтоб понять работают функции или нет?
и что такое Фаирбаг и где его взять??
заранее большое спасибо!
__________________
ЧунГачГучинА-а!

Старый 19.09.2009, 15:03
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 5  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
FairBug - плагин для FireFox позволяет дебажить JavaScript. В FireFox открываем Tools > Add-Ons > Get Add-Ons. Ищем FireBug > устанавливаем, перезапускаем ФФ - живем счастливо
Пример использования яваскрипта в АS3:
Код AS3:
public function createReceiver():Boolean
{
	if (!_available) return false;
	ExternalInterface.addCallback("as3receive", as3receive);
 
	var getId:String = 
	<![CDATA[function(){
		var objects = document.getElementsByTagName("object");
		for (var p in objects)
		{
			if (objects[p].data == "]]> + _ourURL + 
	<![CDATA[")	return objects[p].id;
		}
	}
	]]>;
	_ourID = ExternalInterface.call(getId);
 
	var script:String =
	<![CDATA[function(){
		var b = document.getElementsByTagName("body")[0];
		var d = document.createElement("div");
		d.setAttribute("id", "]]> + _id + 
	<![CDATA[");
		d.as3send = function()
		{
			var flash = document.getElementById("]]> + _ourID +
	<![CDATA[");
			return flash.as2receive.apply(flash, arguments);
		}
		d.as2send = function()
		{
			var flash = document.getElementById("]]> + _ourID +
	<![CDATA[");
			return flash.as3receive(arguments);
		}
		d.style.visibility = "hidden";
		d.style.display = "none";
		b.appendChild(d);
	}]]>;
	ExternalInterface.call(script);
	return true;
}
 
public function as3send(command:String):*
{
	if (!_available) return undefined;
	var script:String =
	<![CDATA[function(){
		var objects = document.getElementsByTagName("object");
		var o = document.getElementById("]]> + _id +
	<![CDATA[");
		return o.as2send("]]> + command +
	<![CDATA[");}]]>;
	return ExternalInterface.call(script);
}
Скопипастил что первое под руку попалось, но какое-то представление дать должно...

В AS3 вы не можете задать свойства флешке, только вызвать функцию, для этого вы должны эту функцию добавить используя
Код AS3:
ExternalInterface.addCallback("alias", theFunction);
После чего вызывать ее из JS:
Код:
var flash = document.getElementsByTagName("object")[0];
flash.alias("Helo world!");
При этом во флеше будет вызвана функция
Код AS3:
public function theFunction(input:String):void
{
    trace(input);
}
И вы должны увидеть в консоле Helo world!.
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 19.09.2009 в 16:44.
Старый 19.09.2009, 15:48
Felicast вне форума Посмотреть профиль Отправить личное сообщение для Felicast Найти все сообщения от Felicast
  № 6  
Ответить с цитированием
Felicast
 
Аватар для Felicast

Регистрация: Feb 2008
Адрес: Череповец
Сообщений: 623
Отправить сообщение для Felicast с помощью ICQ
Цитата:
FairBug
firebug
__________________
я могу стать всем, если только захочу

Старый 19.09.2009, 16:44
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 7  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Ой, ага поправил
__________________
Hell is the possibility of sanity

Старый 20.09.2009, 15:01
Чттос вне форума Посмотреть профиль Отправить личное сообщение для Чттос Посетить домашнюю страницу Чттос Найти все сообщения от Чттос
  № 8  
Ответить с цитированием
Чттос
 
Аватар для Чттос

Регистрация: Dec 2006
Адрес: mpl
Сообщений: 49
Отправить сообщение для Чттос с помощью ICQ
спасибо большое, буду дальше пытаться разбираться
__________________
ЧунГачГучинА-а!

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

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

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


 


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


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