Показать сообщение отдельно
Старый 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.