[EDIT 07-22-2010] удалил демы с моего сайта [/ EDIT]
[EDIT 08-26-2009] добавил очень странную проблему в конец вопроса [/ EDIT]
всем привет
Я пытаюсь начать работу с mootools swift и, похоже, не получаю событие loaderInfo.COMPLETE во флэш-памяти.
точнее, динамически загруженный SWF-файл никогда не загружается полностью, а статический - загружается. Вот соответствующий код моего класса документов во флэш-памяти (AS3).
используйте Firefox + Firebug, чтобы увидеть следы
package pt.classes{
import flash.display.MovieClip
import flash.display.LoaderInfo
import flash.external.*
import flash.events.Event
import flash.events.ProgressEvent
import flash.events.IOErrorEvent
import flash.events.HTTPStatusEvent
import pt.utils.myTrace
import pt.testTrace
import pt.classes.Episode
public class Main extends MovieClip{
include "../testTrace.as";//this is a trace() implementation that redirects traces to the firebug console
public function Main(){
trace ("constructor for "+ this);
var l_this:Main = this;
loaderInfo.addEventListener(Event.COMPLETE, loaderComplete);
loaderInfo.addEventListener(Event.INIT, function(_e:Event){trace("init for "+ l_this)});
loaderInfo.addEventListener(Event.OPEN, function(_e:Event){trace("open for "+ l_this)});
loaderInfo.addEventListener(ProgressEvent.PROGRESS, function(_e:ProgressEvent){trace("Progress for "+ l_this)});
loaderInfo.addEventListener(IOErrorEvent.IO_ERROR, function(_e:IOErrorEvent){trace("IOError for "+ l_this)});
loaderInfo.addEventListener(HTTPStatusEvent.HTTP_STATUS, function(_e:HTTPStatusEvent){trace("HTTPStatus for "+ l_this)});
ExternalInterface.addCallback("trace", this.trace);
}
private var m_params:Object;
/*! loaderComplete
* called when the stage has finished loading
* @param _e : an Event
*/
private function loaderComplete (_e:Event){
m_params = new Object;
for (var i:String in loaderInfo.parameters){
m_params[i] = loaderInfo.parameters[i];
}
trace("loader complete for " + this);
}
}
}
и когда я просто использую HTML, который мне предоставляет flash IDE, консоль firebug дает мне следующее:
конструктор для Main Pokertales
init для Main Pokertales
Прогресс для главных покерных сказок
полный загрузчик для MainPokertales
но, когда я использую swiff, как это (файл .js включен сразу после моего moo-core.js):
mySwiff = new Swiff("files/main.swf",{
width: 200,
height: 150,
params: {
wmode: 'opaque',
},
vars: {
myVariableString: 'hello'
},
callBacks: {
load: function() {
alert("Flash is loaded!");
console.log("flash is loaded");
this.trace('hello from flash');
},
error: function(){console.log("error!")},
start: function(){console.log("start!")}
}
});
console.log(mySwiff);
window.addEvent('domready', function() {
console.log('dom is ready');
//document.newElement(mySwiff);/*
var myCont;
if (myCont = $('swiffcontainer')){
mySwiff.inject(myCont,'top');
};
//console.log(myCont, mySwiff);
});
я получаю только два первых журнала (без прогресса, без завершения и без обратного вызова загрузки ...
Параметры объекта = экземпляр объекта = Swiff_1251130426079
Дом готов
конструктор для Main Pokertales
init для Main Pokertales
Итак, SWF создан, он загружает свой загрузчик, затем останавливается ... Кто-нибудь получил представление об этом?
Что я здесь не так делаю?
О, и заранее спасибо за любую помощь:)
РЕДАКТИРОВАТЬ: как бы странно это ни казалось, swiff фактически полностью загружается и регистрирует весь путь до завершения загрузки, ЕСЛИ файл .swf был сгенерирован менее 10 секунд назад ... если я нажму "publish" во flash IDE а затем сразу же нажмите F5 в Firefox, я получаю этот журнал:
Параметры объекта = экземпляр объекта = Swiff_1251294375102
Дом готов конструктор для Main
Инициирование Pokertales для главных покерных сказок
Прогресс для главных покерных сказок
загрузчик завершен для Main Pokertales
start = Swiff.CallBacks.Swiff_1251294375102.start
myVariableString = hello
error = Swiff.CallBacks.Swiff_1251294375102.error
load = Swiff.CallBacks.Swiff_1251294375102.load
Может быть, мне не хватает какой-то проблемы безопасности / allowDomain, которую я не знаю? Конечно, я не могу публиковать и загружать .swf каждые 10 секунд на своем сайте (производительность была бы довольно низкой :))
РЕДАКТИРОВАТЬ 2: Хорошо, я сужаю проблему: скрипт фактически работает, если я открываю html-файл напрямую, но останавливает событие init при вызове через HTTP (все равно локальные или удаленные серверы). Это какая-то политика домена, которую я не знаю?