Это вопрос о внутренностях OpenLaszlo (или, скорее, Flex?):
Мне удалось загрузить полный swf-файл приложения Flex в OpenLaszlo (выпуск магистрали, более старые выпуски не удались). Он работает во Flash 10 так же, как и в 11. Но OpenLaszlo, кажется, захватывает или блокирует определенные события мыши. Когда я добавляю SWF в
YFilesSWF.content.sprite (YFilesSWF is extending the window class)
тогда большинство действий мыши работают (например, кнопки Flex), но некоторые не работают (некоторые элементы, на которые можно щелкнуть, на своего рода холсте). Далее я заметил, что когда я добавляю SWF в
YFilesSWF.sprite (YFilesSWF is extending the view)
, то SWF больше не реагирует ни на какие события мыши. Это означает, что окно несколько лучше, но недостаточно. я использую
flash.display.Loader
class для загрузки SWF обычным способом. Это реализация класса загрузчика AS3, которую я использую для загрузки swf и который я включаю в приложение OpenLaszlo:
public class LoadSwf extends Sprite
{
public var externalSwfLoader:Loader = new Loader();
public var swfDisplayObject:DisplayObject;
public var swfComObject:Object;
public function LoadSwf(url:String,p:Sprite):void
{
// externalSwfLoader.mouseChildren = false;
// this.mouseChildren = false;
// p.mouseChildren = false;
// externalSwfLoader.mouseEnabled = false;
// this.mouseEnabled = false;
// p.mouseEnabled = false;
p.addChild(this);
externalSwfLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, createSwfObjects);
externalSwfLoader.load(new URLRequest(url));
}
public function createSwfObjects(evt:Event):void
{
var loaderInfo:LoaderInfo = evt.target as LoaderInfo;
swfDisplayObject = evt.target.content;
swfComObject = loaderInfo.content;
addChild(swfDisplayObject);
}
}
Это код OpenLaszlo того, как используется класс:
<class name="YFilesSWF" extends="window">
<passthrough>
import LoadSwf;
</passthrough>
<attribute name="loadSwf" />
<handler name="oninit"><![CDATA[
this.loadSwf = new LoadSwf("SimpleGraphEditor.swf", this.content.sprite);
]]></handler>
</class>
Кто-нибудь знает, что и где OpenLaszlo уничтожает некоторые события мыши Flex и как это предотвратить? Есть ли еще лучший компонент, чем окно, которое сохранит события мыши Flex? Что потребуется изменить в исходном коде компонентов OL?
Спасибо!