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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 06.04.2007, 22:06
Dragon rideR вне форума Посмотреть профиль Отправить личное сообщение для Dragon rideR Найти все сообщения от Dragon rideR
  № 1  
Ответить с цитированием
Dragon rideR
 
Аватар для Dragon rideR

Регистрация: Jan 2007
Сообщений: 368
По умолчанию Перестают грузиться картинки после публикации

Помогите пожалуйста. Ситуация следующая локально все работает, после публикации в вебе перестают грузить некоторые мувики. Вот выкладываю ссылку на опубликованный мувик http://fk28.narod.ru89кб. И ссылка на архив проекта http://fk28.narod.ru/konstruktor.zip 800кб
Там после выбора майка слева ScrollPane, в нем кнопка добавить. Локально она работает, а в вебе нет. Вот еще выкладываю фрагмент кода который отвечает за загрузку изображений:
Код:
function add_btn():Void {
	//Добавление пунктов меню
	btn_load_menu._visible = false;
	_root.t2=_root.menu_tip.length;
	for (i=0; i<_root.menu_tip.length; i++) {
		var mc:MovieClip = this.createEmptyMovieClip(i, i);
		mc.createEmptyMovieClip("jpg", 1);
		mc.createTextField("loader_txt", 2, 10, 10, 50, 50);
		//создаем текст. поле в которое будем писать процент загрузки
		var loader = new MovieClipLoader();
		loader.i = this.i;
		loader.onLoadInit = function(mc) {
			_root.splogos.onComplete();
			mc.i = this.i;
			mc._y = this.i*40;
			mc.onRelease = function() {
				//Создаем динамический код для клика
				add_img(this.i);
			};
		};
		loader.addListener(loader);
		loader.loadClip(_root.menu_text[i], mc.jpg);
		mc.onEnterFrame = function() {
			var l = mc.jpg.getBytesLoaded();
			var t = mc.jpg.getBytesTotal();
			if (l && t) {
				mc.loader_txt.text = Math.floor(100*l/t)+"%";
				if (l == t) {
					mc.loader_txt.removeTextField();
					delete mc.onEnterFrame;
				}
			}
		};
	}
}
Трейсом проверил, все массивы заполненны.
P.S. Заранее спасибо

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

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

Старый 07.04.2007, 01:18
Dragon rideR вне форума Посмотреть профиль Отправить личное сообщение для Dragon rideR Найти все сообщения от Dragon rideR
  № 3  
Ответить с цитированием
Dragon rideR
 
Аватар для Dragon rideR

Регистрация: Jan 2007
Сообщений: 368
Поменял строку на loader.i = i но не помогло.
Можете подсказать по поводу фразы: "которые ссылаются на нужные области видимости", где можно прочесть про эти области видимости, а то я ничего в них не понимаю....
P.S. А сам принцип по Вашему совету: http://www.flasher.ru/forum/showthread.php?t=93721

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

Регистрация: Sep 2002
Сообщений: 30,787
Да это я к тому клоню, что переписывать надо. В таком коде искать баг дороже, чем переписать с нуля.

Старый 07.04.2007, 02:46
this.create вне форума Посмотреть профиль Отправить личное сообщение для this.create Найти все сообщения от this.create
  № 5  
Ответить с цитированием
this.create

Регистрация: Feb 2007
Сообщений: 264
Цитата:
Сообщение от __etc
Когда я вижу такой код, мне хочется плакать, особенно, когда код в изобилии посыпан ссылками, которые ссылаются на нужные области видимости.
Код:
loader.onLoadInit = function(mc:MovieClip):Void  {
    mc._x = Stage.width-mc._width;
};
А такой код это тоже ссылка на нужную область видимости? Если да, то как правильно нужно делать?

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

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

Старый 07.04.2007, 03:19
this.create вне форума Посмотреть профиль Отправить личное сообщение для this.create Найти все сообщения от this.create
  № 7  
Ответить с цитированием
this.create

Регистрация: Feb 2007
Сообщений: 264
Как раз тут вроде нужно Delegate использовать( в onEnterFrame)? Только как? Может пример напишите?
А чем так плохи ссылки на нужные области видимости? Вроде удобно...
Ой! Правда, в данном случае действительно this будет указывать на объект вызвавший функцию.


Последний раз редактировалось this.create; 07.04.2007 в 03:21.
Старый 07.04.2007, 03:33
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Т.к. это AS1, то объявлять функции в таком виде не есть криминал и просто нужно вместо mc использовать this.

Можно себе представить вот такой вот бардак:

Код:
a();
x = function () {
	trace('x() called');
};
function a() {
	trace('a() '+this);
	link = this;
	function b() {
		trace('b() '+this+','+link);
		function c() {
			trace('c() '+this);
		}
		c();
	}
	d = function () {
		trace('d() '+this);
		e = function () {
			trace('e() '+this+', d: '+this.d);
		};
		e();
	};
	f = function () {
		trace('f() '+this);
		var g = function () {
			trace('g() '+this+','+this.self);
		};
		g.prototype.self = this;
		g();
		new g();
	};
	b();
	d();
	f();
	h = {};
	h.e = e;
	trace('h.e: '+(h.e === e));
	h.e();
	trace('c: '+c);
	c();
	trace('x: '+x);
	x();
}
trace('Functions: '+[a, b, c, d, e, f, g, h, x]);
Кто на кого ссылается здесь ещё в принципе нормально (вот h.e() уже ссылается не туда, куда думается), а вот довольно забавный момент с «x» (ну это, правда, не относится конкретно к областям видимости, но забавно). Когда я вижу подобный код, я просто закрываю исходник и все.


Последний раз редактировалось etc; 07.04.2007 в 03:42.
Старый 07.04.2007, 11:27
Dragon rideR вне форума Посмотреть профиль Отправить личное сообщение для Dragon rideR Найти все сообщения от Dragon rideR
  № 9  
Ответить с цитированием
Dragon rideR
 
Аватар для Dragon rideR

Регистрация: Jan 2007
Сообщений: 368
Я с радостью готов переписать код, только можете подсказать: где можно посмотреть как это правильно делать?

Создать новую тему Ответ Часовой пояс GMT +4, время: 00:19.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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