![]() |
|
||||||||||
|
|
|
|||||
|
Здравствуйте,
такая проблема - не срабатывает onLoadInit - trace ничего не показывает. Загружается картинка во флешку, вот код: var container:MovieClip = drawing_area.createEmptyMovieClip("container", 2);
var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.addListener(this);
mcLoader.loadClip(_root.address, container);
function onLoadInit(mc:MovieClip) {
w = mc._width;
h = mc._height;
trace (h);
mc._x = (550 - w)/2;
mc._y = (410 -h)/2;
}
|
|
|||||
|
Цитата:
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Проверь onLoadComplete ещё, должен вызываться.
Где тестишь? |
|
|||||
|
ветеран форума
|
И еще:скорее всего в трейсе будет 0 или пустота, сначала нужно что-то сделать с клипом(я обычно пишу mc._xscale=mc._yscale=100; )
__________________
4am is time to rock |
|
|||||
|
BigDan, спасибо - заработало. код был взят из мануала... наверно что-то напутал, сделал как ты написал - заработало.
|
|
|||||
|
BigDan, спасибо - заработало. код был взят из мануала - действительно, проблемы были с "this" , сделал как вы написали - заработало.
только в этой строчке: Цитата:
Последний раз редактировалось Mattie; 08.11.2006 в 12:44. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
А зачем создавать слушатель, когда можно и так прописать необходимые методы и подписать this. И всё будет работать.
|
|
|||||
|
у меня такая система:
все это уже слушается и срабатывает внутри onLoad для SendAndLoad, который в свою очередь находится внутри объекта и срабатывает на onComplete в общем код такой и часть из за которой вышел весь сыр-бор в серединке если вы предложите варианты для оптимизации кода - я очень буду благодарен в общем это просто: 1) загрузка картинки на сервак 2) чтение ее с сервака 3) уменьшение и помещение в drawing_area, пользователю на обозрение прямо во флешке. System.security.allowDomain("http://natalie/");
// импортируем класс
import flash.net.FileReference;
// инициализируем настройки, кнопку upload_btn, мы отключаем, пока не будет известно имя файла
upload_btn.enabled = false;
// создаем экземпляр класса FileReference
var file_fr:FileReference = new FileReference();
// создаем объект для листнера событий FileReference
var list_obj:Object = new Object();
list_obj.onSelect = function() {
upload_btn.enabled = true;
name_txt.text = file_fr.name;
};
list_obj.onComplete = function()
{
name_txt.text = "All Done";
rec_mc.clear();
upload_btn.enabled = false;
//забираем у upload2.php переименованный файл и отображаем его на bg.
myLoadVars = new LoadVars();
_root.newName = file_fr.name;
myLoadVars.name = _root.newName;
var testLoadVars = new LoadVars();
myLoadVars.sendAndLoad("http://natalie/modernClock/upload2.php", testLoadVars, "POST");
testLoadVars.onLoad = function()
{
_root.address = "http://natalie/modernClock/drawings/" + testLoadVars.s;
_root.ttt = _root.address;
////////////////////////////////////
var container:MovieClip = drawing_area.createEmptyMovieClip("container", 2);
var mcLoader = new MovieClipLoader();
var mc_obj = new Object();
mcLoader.loadClip(_root.address, container);
// уменьшаем размер картинки (drawing_area у нас 470X350) вот в этих пределах и должна быть //картинка
mc_obj.onLoadInit = function(target_mc:MovieClip)
{
my_width = target_mc._width;
my_height = target_mc._height;
if (my_width <= 470 && my_height <= 350)
{
new_width = my_width;
new_height = my_height;
}
else if (my_width > my_height)
{ param = my_width/my_height;
my_width = 470;
my_height = 470/param;
while (my_height>350)
{
my_width = my_width-1;
my_height = my_width/param;
}
target_mc._width = my_width;
target_mc._height = my_height;
}
else if (my_height > my_width)
{
param = my_height/my_width;
my_height = 350;
my_width = 350/param;
while (my_width>470)
{
my_height = my_height-1;
my_width = my_height/param;
}
target_mc._width = my_width;
target_mc._height = my_height;
}
}
mcLoader.addListener(mc_obj);
}
};
list_obj.onProgress = function(bytesTotal, bytesLoaded) {
var percent = bytesLoaded/file_fr.size;
drawRec(percent);
};
// если пользователь отменяет загрузку
list_obj.onCancel = function() {
name_txt.text = "Cancel was selected";
};
// если произошла ошибка
list_obj.onIOError = function(fileRef) {
name_txt.text = "IO error with "+fileRef.name;
};
// если произошла ошибка, связанная с безопасностью
list_obj.onSecurityError = function(fileRef, error) {
name_txt.text = "Security error with "+fileRef.name+":"+error;
};
// ошибки протокола
list_obj.onHTTPError = function(fileRef:FileReference, error:Number) {
name_txt.text += "HTTP error: with "+fileRef.name+":error #"+error;
};
// аттачим листнер
file_fr.addListener(list_obj);
//the event for the browse button
browse_btn.clickHandler = function() {
file_fr.browse([{description:"JPEGs", extension:"*.JPG;*.jpg;*.png;*.gif;"}]);
};
// событие для кнопки upload
upload_btn.clickHandler = function() {
file_fr.upload("http://natalie/modernClock/index.php");
rec_mc.fillColor = Math.random()*0x1000000;
};
// рисуем прямоугольник, отображающий процесс загрузки
function drawRec(per) {
rec_mc.clear();
rec_mc.lineStyle(0);
rec_mc.beginFill(rec_mc.fillColor, 70);
rec_mc.lineTo(per*rec_mc._width, 0);
rec_mc.lineTo(per*rec_mc._width, rec_mc._height);
rec_mc.lineTo(0, 30);
rec_mc.lineTo(0, 0);
rec_mc.endFill();
}
Последний раз редактировалось Mattie; 08.11.2006 в 14:39. |
![]() |
![]() |
Часовой пояс GMT +4, время: 19:40. |
|
|
« Предыдущая тема | Следующая тема » |
|
|