![]() |
0 Всего найдено: 10
cleptoman
Сообщение
22/12/2009 10:53
Копия темы
затык с сосуществованием TextField и StageDisplayState.FULL_SCREEN ( господа, ситуация следующая. есть текстфилд на сцене (инпут) и есть кнопка фуллскрина. так вот, как известно (по крайней мере так было) инпут не работает при включенном фулскрине. однако события FocusEvent этот текстфилд выпуливает и мы их можем ловить, что я и делаю. при этом включаю режим StageDisplayState.NORMAL. и все бы хорошо, но каретка не возвращается в текстфилд. чтобы она вернулась нужно раза 3 кликнуть по инпуту. собсно, вопрос: как понять когда я могу вернуть каретку в инпут? п.с. танцы с бубном с stage.focus, Event.RESIZE и FullScreenEvent.FULL_SCREEN ни к чему толковому не приводят. перед сменой дисплейстейта ,объект (инпут), его иницировавший я запоминаю. п.п.с на флешере молчат как рыбы об лед ) выручайте)
bartleby
Сообщение
22/12/2009 11:57
Копия темы
stage.addEventListener(Event.FULLSCREEN, fullScreenHandler); private function fullScreenHandler(event:Event = null):void { switch(stage.displayState) { case StageDisplayState.NORMAL: break; case StageDisplayState.FULL_SCREEN: break; } }
Saint_Partizan
Сообщение
22/12/2009 12:42
Копия темы
package { import fl.controls.Button; import flash.display.Sprite; import flash.display.StageDisplayState; import flash.display.StageScaleMode; import flash.events.Event; import flash.events.FocusEvent; import flash.events.FullScreenEvent; import flash.events.MouseEvent; import flash.text.TextField; import flash.text.TextFieldType; /** * ... * @author Mikhail Klabukov */ public class Main extends Sprite { private var tf:TextField = new TextField(); public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); // entry point var b:Button = new Button(); b.addEventListener(MouseEvent.CLICK,clk) addChild(b); stage.scaleMode = StageScaleMode.NO_SCALE; stage.addEventListener(Event.FULLSCREEN, fullscreen); tf.type = TextFieldType.INPUT; tf.border = true; tf.y = 100; addChild(tf) } private function fullscreen(e:FullScreenEvent):void { if (!e.fullScreen) { tf.removeEventListener(FocusEvent.FOCUS_IN,tfInFocus) stage.focus = tf; }else { tf.addEventListener(FocusEvent.FOCUS_IN, tfInFocus); } } private function tfInFocus(e:FocusEvent):void { stage.displayState = stage.displayState != StageDisplayState.FULL_SCREEN? StageDisplayState.FULL_SCREEN:StageDisplayState.NORMAL; } private function clk(e:MouseEvent):void { stage.displayState = stage.displayState != StageDisplayState.FULL_SCREEN? StageDisplayState.FULL_SCREEN:StageDisplayState.NORMAL; } } }
Saint_Partizan
Сообщение
22/12/2009 13:01
Копия темы
странно, но в мозилле отрабатывает только один раз :) в ие8 все ок.
Saint_Partizan
Сообщение
22/12/2009 13:24
Копия темы
Оказывается мозилла скидывает фокус с флешки :)
cleptoman
Сообщение
22/12/2009 13:36
Копия темы
так отож (...у меня этот кульбит с этим ивентом и есть, ток текстфилд не отписывается от фокусивента
cleptoman
Сообщение
22/12/2009 13:42
Копия темы
в ИЕ 7 тож беда...после насильственного подсовывания инпута в фокус он все-равно его терят (
Saint_Partizan
Сообщение
22/12/2009 13:49
Копия темы
Если судить по мозилле, то скриптом ничего не сделать... Фокус теряется у флешки, в то время как флешка (сделал интервал на проверку фокуса) пишет что фокус на тектфилде. :) Интересно только то, что работает один раз :)
cleptoman
Сообщение
22/12/2009 14:20
Копия темы
хмм..значить будем вертать фокус внешними интерфейсами)
GST
Сообщение
22/12/2009 15:10
Копия темы
0
Это правильное решение. Используйте яваскрипт, который будет возвращать фокус флешке. Не буду рассказывать как потом вернуть фокус текстПолю, сами знаете) |
Выразить восторг, поругаться или предложить что-нибудь можно на форуме |
Для обсуждения этого сервиса так же есть темы на фрилансе по поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал" |