Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 07.11.2006, 20:05
Mattie вне форума Посмотреть профиль Отправить личное сообщение для Mattie Найти все сообщения от Mattie
  № 1  
Ответить с цитированием
Mattie
[6 17.05.06]

Регистрация: Mar 2006
Адрес: Ростов-на-Дону
Сообщений: 80
Отправить сообщение для Mattie с помощью ICQ Отправить сообщение для Mattie с помощью Yahoo
По умолчанию не срабатывает onLoadInit

Здравствуйте,

такая проблема - не срабатывает 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;
}
в функцию onLoadInit просто не попадаем?

Старый 07.11.2006, 20:16
BigDan вне форума Посмотреть профиль Отправить личное сообщение для BigDan Найти все сообщения от BigDan
  № 2  
Ответить с цитированием
BigDan
 
Аватар для BigDan

Регистрация: Apr 2006
Адрес: Kiev
Сообщений: 1,675
Отправить сообщение для BigDan с помощью ICQ
Цитата:
mcLoader.addListener(this);
Кто так пишет? Конечно оно не будет работать.
Код:
var my_mcl=new MovieClipLoader();
var my_obj=new Object();
my_mcl.loadClip(.....);
my_obj.on.....{
}
my_mcl.addListener(my_obj);

Старый 07.11.2006, 20:16
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 3  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Проверь onLoadComplete ещё, должен вызываться.
Где тестишь?

Старый 07.11.2006, 20:18
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 4  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
И еще:скорее всего в трейсе будет 0 или пустота, сначала нужно что-то сделать с клипом(я обычно пишу mc._xscale=mc._yscale=100; )
__________________
4am is time to rock

Старый 08.11.2006, 12:32
Mattie вне форума Посмотреть профиль Отправить личное сообщение для Mattie Найти все сообщения от Mattie
  № 5  
Ответить с цитированием
Mattie
[6 17.05.06]

Регистрация: Mar 2006
Адрес: Ростов-на-Дону
Сообщений: 80
Отправить сообщение для Mattie с помощью ICQ Отправить сообщение для Mattie с помощью Yahoo
BigDan, спасибо - заработало. код был взят из мануала... наверно что-то напутал, сделал как ты написал - заработало.

Старый 08.11.2006, 12:38
Mattie вне форума Посмотреть профиль Отправить личное сообщение для Mattie Найти все сообщения от Mattie
  № 6  
Ответить с цитированием
Mattie
[6 17.05.06]

Регистрация: Mar 2006
Адрес: Ростов-на-Дону
Сообщений: 80
Отправить сообщение для Mattie с помощью ICQ Отправить сообщение для Mattie с помощью Yahoo
BigDan, спасибо - заработало. код был взят из мануала - действительно, проблемы были с "this" , сделал как вы написали - заработало.

только в этой строчке:

Цитата:
Сообщение от BigDan
my_obj.on.....{
}
нужно было вот так написать, а то без "function.." ошибка выскакивала

Код:
my_obj.onLoadInit = function(target_mc:MovieClip) 
				     {
                                         ... 
                                         my_width = target_mc._width;
					 my_height = target_mc._height);
					 trace (target_mc._width);
                                         ...
				      }


Последний раз редактировалось Mattie; 08.11.2006 в 12:44.
Старый 08.11.2006, 14:03
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
А зачем создавать слушатель, когда можно и так прописать необходимые методы и подписать this. И всё будет работать.

Старый 08.11.2006, 14:36
Mattie вне форума Посмотреть профиль Отправить личное сообщение для Mattie Найти все сообщения от Mattie
  № 8  
Ответить с цитированием
Mattie
[6 17.05.06]

Регистрация: Mar 2006
Адрес: Ростов-на-Дону
Сообщений: 80
Отправить сообщение для Mattie с помощью ICQ Отправить сообщение для Mattie с помощью Yahoo
у меня такая система:

все это уже слушается и срабатывает внутри 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, время: 01:43.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 01:43.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.