|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
JS -> AS3 - принцип работы функции AS3
Здравствуйте.
я совсем недавно перешла на АS3, такчто сильно не ругайте. пытаюсь разобраться с эвентами в яваскрипте, которые потом вызывают функцию во флэше. главный вопрос который меня мучает - это как работает потом эта вызванная функция? может ли она вызвать еще функции во флэше? вот код который я пишу в AS: яваскрипт говорит что изменен размер окна браузера, по этому эвенту я запускаю новую функцию tailleBrowser(), которая в свою очередь изменяет размер rond - объекта на сцене. Но эта функция (tailleBrowser) не запускается как быть? чего-то я не допонимаю. помогите пожалуйста! function tailleBrowser(){ var reponse:Number=ExternalInterface.call("addNumbers"); rond.width = reponse/10; } function resizeFenetre(name:String):String { tailleBrowser(); return "ok"; } ExternalInterface.addCallback("resizeFenetre", resizeFenetre);
__________________
ЧунГачГучинА-а! |
|
|||||
Регистрация: Nov 2008
Сообщений: 528
|
Цитата:
|
|
|||||
Modus ponens
|
1. document.body.clientWidth
- вы в курсе, что это не во всех браузерах работает? 2. вы нигде не вызываете никакие методы флешки, так что сложно сказать, что у вас не получается. Ну и поставьте себе Фаирбаг, он вам ве расскажет лучше нас Что еще приятнее, JS код можно писать прямо во флешке, а потом отдавать его яваскрипту на выполнение (так и кода меньше получится, да и приятно, когда контроль весь в одном месте).
__________________
Hell is the possibility of sanity |
|
|||||
почти весь код яваскрипт я скопировала из хелпа, кроме некоторых деталей таких как document.body.clientWidth, но в ИЕ он работает, это точно (мне пока его достаточно)
честно говоря - я обыскалась как вставлять яваскрипт во флэш, нет ли у вас простого примера, плиз? и еще, я просто начинаю сомневаться в работоспособности моей функции resizeFenetre. что я в нее не вставляю до строки return, ничего не срабатывает. Цитата:
и что такое Фаирбаг и где его взять?? заранее большое спасибо!
__________________
ЧунГачГучинА-а! |
|
|||||
Modus ponens
|
FairBug - плагин для FireFox позволяет дебажить JavaScript. В FireFox открываем Tools > Add-Ons > Get Add-Ons. Ищем FireBug > устанавливаем, перезапускаем ФФ - живем счастливо
Пример использования яваскрипта в АS3: 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 вы не можете задать свойства флешке, только вызвать функцию, для этого вы должны эту функцию добавить используя После чего вызывать ее из JS: При этом во флеше будет вызвана функция И вы должны увидеть в консоле Helo world!.
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 19.09.2009 в 16:44. |
|
|||||
Цитата:
__________________
я могу стать всем, если только захочу |
|
|||||
спасибо большое, буду дальше пытаться разбираться
__________________
ЧунГачГучинА-а! |
Часовой пояс GMT +4, время: 15:56. |
|
« Предыдущая тема | Следующая тема » |
|
|