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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 27.08.2012, 10:24
sharomet вне форума Посмотреть профиль Отправить личное сообщение для sharomet Найти все сообщения от sharomet
  № 1  
Ответить с цитированием
sharomet

Регистрация: Aug 2012
Сообщений: 7
По умолчанию Предзагрузка

У меня 2 класса первый это Main который подключен к сцене и второй Loader который я вызываю через класс Main в котором и происходит предзагрузка..
Main:
Код AS3:
package net {
 
	import flash.display.LoaderInfo;
	import flash.display.MovieClip;
	import flash.events.*;
 
	public class Main extends MovieClip {
		private var _load:Load;
		public function Main() {
			_load = new Load(loader);
		}
	}
}
и Loader:
Код AS3:
package net {
	import flash.display.MovieClip;
	import flash.events.*;
	import flash.display.LoaderInfo;
 
	dynamic public class Load extends MovieClip {
		private var loads;
		private var total;
		private var inf;
 
		public function Load() {
			loaderInfo.addEventListener(ProgressEvent.PROGRESS, progressF);
			loaderInfo.addEventListener(Event.COMPLETE, completeF); // событие наступает когда загрузка окончена
		}
 
		public function progressF(e:ProgressEvent){ //событие наступает в процессе загруски содержимого
			loads=Math.round(e.bytesLoaded/1024); //функция вызываемая в процессе загрузки
			total=Math.round(e.bytesTotal/1024);
			inf=Math.round(loads/total*100);
			Object(this).t1_txt.text=inf;
			Object(this).k_mc.width=inf*3;
		}
		public function completeF(e:Event){ //функция вызывается после окончания загрузки
			gotoAndStop(2);
		}
	}
}
на сцене есть 2 объекта t1_txt(текстовый) и k_mc(маска сама полоса)

при запуске пишет ошибку
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at net::Load()
at net::Main()
что он хочет?

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

Регистрация: Jun 2008
Адрес: Tomsk
Сообщений: 88
loaderInfo в конструкторе Load не определено

Старый 27.08.2012, 11:50
sharomet вне форума Посмотреть профиль Отправить личное сообщение для sharomet Найти все сообщения от sharomet
  № 3  
Ответить с цитированием
sharomet

Регистрация: Aug 2012
Сообщений: 7
По умолчанию А как передать

Цитата:
Сообщение от F1esk Посмотреть сообщение
loaderInfo в конструкторе Load не определено
А как передать параметр loaderInfo из класса Main в класс Load?

Старый 27.08.2012, 12:06
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 4  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Во втором классе конструктор надо переделать так:
Код AS3:
public function Load(loader:Loader) {
	loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressF);
	loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeF); // событие наступает когда загрузка окончена
}
а в первом передать в него загрузчик
Код AS3:
_load = new Load(new Loader());
п.с. эта архитектура кривая. Тут в идеале нужно вообще всё переделать.

Старый 27.08.2012, 12:23
sharomet вне форума Посмотреть профиль Отправить личное сообщение для sharomet Найти все сообщения от sharomet
  № 5  
Ответить с цитированием
sharomet

Регистрация: Aug 2012
Сообщений: 7
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Во втором классе конструктор надо переделать так:
п.с. эта архитектура кривая. Тут в идеале нужно вообще всё переделать.
иак Loader - это же не класс класс загрузки Load зачем ему в скобках писать еще один класс?
мне просто нужно передать параметр loaderInfo из Main в Load как это сделать? можно его как то там объявить к примеру в переменной а потом передать его в другой класс?


Код AS3:
package net {
 
	import flash.display.LoaderInfo;
	import flash.display.MovieClip;
	import flash.events.*;
 
	public class Main extends MovieClip {
		private var _load:Load;
		public function Main() {
			trace(this);
			_load = new Load(new Loader);
		}
	}
}
Код AS3:
package net {
	import flash.display.MovieClip;
	import flash.events.*;
	import flash.display.LoaderInfo;
 
	dynamic public class Load extends MovieClip {
		private var loads;
		private var total;
		private var inf;
 
		public function Load(loader:Loader) {// теперь тут ошибка
			loader.addEventListener(ProgressEvent.PROGRESS, progressF);
			loader.addEventListener(Event.COMPLETE, completeF); // событие наступает когда загрузка окончена
		}
 
		public function progressF(e:ProgressEvent){ //событие наступает в процессе загруски содержимого
			loads=Math.round(e.bytesLoaded/1024); //функция вызываемая в процессе загрузки
			total=Math.round(e.bytesTotal/1024);
			inf=Math.round(loads/total*100);
			Object(this).t1_txt.text=inf;
			Object(this).k_mc.width=inf*3;
		}
		public function completeF(e:Event){ //функция вызывается после окончания загрузки
			gotoAndStop(2);
		}
	}
}

1046: Тип не найден или не является константой времени компиляции: Loader.

Старый 27.08.2012, 12:27
Art_133 вне форума Посмотреть профиль Отправить личное сообщение для Art_133 Посетить домашнюю страницу Art_133 Найти все сообщения от Art_133
  № 6  
Ответить с цитированием
Art_133
 
Аватар для Art_133

блогер
Регистрация: Feb 2007
Адрес: Москва
Сообщений: 538
Записей в блоге: 2
Отправить сообщение для Art_133 с помощью Skype™
Скобки забыли после Loader:
Код AS3:
_load = new Load( new Loader() )
__________________
http://artem-lobachenkov.ru/

Старый 27.08.2012, 12:36
sharomet вне форума Посмотреть профиль Отправить личное сообщение для sharomet Найти все сообщения от sharomet
  № 7  
Ответить с цитированием
sharomet

Регистрация: Aug 2012
Сообщений: 7
Цитата:
Сообщение от Art_133 Посмотреть сообщение
Скобки забыли после Loader:
Код AS3:
_load = new Load( new Loader() )

ошибка всё та же((
И класса Loader() не существует зачем его заносить в скобки?

zalil ru/33708020 вот исходник, перед ru точку нужно поставить в сылку ато не пропускает


Последний раз редактировалось sharomet; 27.08.2012 в 13:28.
Старый 27.08.2012, 13:51
F1esk вне форума Посмотреть профиль Отправить личное сообщение для F1esk Найти все сообщения от F1esk
  № 8  
Ответить с цитированием
F1esk
 
Аватар для F1esk

Регистрация: Jun 2008
Адрес: Tomsk
Сообщений: 88
Цитата:
Сообщение от sharomet Посмотреть сообщение
ошибка всё та же((
И класса Loader() не существует зачем его заносить в скобки?
класса "Loader()" действительно не существует, иначе для создания экземпляра пришлось бы писать Loader()()
а это уже намек на эротику, во всех двух смыслах

Старый 27.08.2012, 14:02
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 9  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Вы чо делаете, тут же предзагрузка самой флешки нужна, а не левого Loader.
Код AS3:
package net {
 
	import flash.display.LoaderInfo;
	import flash.display.MovieClip;
	import flash.events.*;
 
	public class Main extends MovieClip {
		private var _load:Load;
		public function Main() {
			trace(this);
			_load = new Load(loaderInfo);
		}
	}
}
Код AS3:
public function Load(loader:LoaderInfo) {
			loader.addEventListener(ProgressEvent.PROGRESS, progressF);
			loader.addEventListener(Event.COMPLETE, completeF); // событие наступает когда загрузка окончена
		}
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 27.08.2012, 14:17
sharomet вне форума Посмотреть профиль Отправить личное сообщение для sharomet Найти все сообщения от sharomet
  № 10  
Ответить с цитированием
sharomet

Регистрация: Aug 2012
Сообщений: 7
Цитата:
Сообщение от -De- Посмотреть сообщение
Вы чо делаете, тут же предзагрузка самой флешки нужна, а не левого Loader.
Код AS3:
package net {
 
	import flash.display.LoaderInfo;
	import flash.display.MovieClip;
	import flash.events.*;
 
	public class Main extends MovieClip {
		private var _load:Load;
		public function Main() {
			trace(this);
			_load = new Load(loaderInfo);
		}
	}
}
Код AS3:
public function Load(loader:LoaderInfo) {
			loader.addEventListener(ProgressEvent.PROGRESS, progressF);
			loader.addEventListener(Event.COMPLETE, completeF); // событие наступает когда загрузка окончена
		}
TypeError: Error #1010: Термин не определен и не имеет свойств.
at net::Load/progressF()

блин, без классов всё так хорошо работало связался на свою голову

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

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

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


 


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


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