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

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

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

Регистрация: Jul 2005
Сообщений: 304
Отправить сообщение для Ноябрь с помощью ICQ
По умолчанию Loader.content

Я хочу написать класс хитрого прелодера,
load_to_clip - просто клип
general_loader - loader
Код:
load_to_clip.addChild(general_loader);//это естественно работает
load_to_clip = general_loader.content as MovieClip;//нет, и не выводит ошибок
load_to_clip.addChild(general_loader.content as MovieClip);//нет, выдает предупреждение*
Как вытащить мувик из подгружаемого swf файла?

*Предупреждение:
Код:
TypeError: Error #2007: Parameter child must be non-null.
	at flash.display::DisplayObjectContainer/addChild()
	at main.loader::LoaderWithClip/load_go()
	at main::Index()
__________________
Пора бы мне уже умнеть..

Старый 28.03.2008, 04:59
Mr. Fixit вне форума Посмотреть профиль Найти все сообщения от Mr. Fixit
  № 2  
Ответить с цитированием
Mr. Fixit
Banned
[+1 08.05.08]
[+4 14.04.08]
[+1.3 02.05.08]

Регистрация: Oct 2006
Адрес: кагбэ Киеф!!1
Сообщений: 1,473
Код:
var loadedMovie : LoaderInfo = LoaderInfo(event.target).content;
вроде так, если не ошибаюсь...

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

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от Mr. Fixit
Код:
var loadedMovie : LoaderInfo = LoaderInfo(event.target).content;
вроде так, если не ошибаюсь...
content уж точно не LoaderInfo. content может быть как Sprite, так и MovieClip, зависит от флешки.

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

Регистрация: Jul 2005
Сообщений: 304
Отправить сообщение для Ноябрь с помощью ICQ
спасибо, вроде получается
Код:
private function onload(e:Event){
	load_to_clip.addChild(e.target.content as MovieClip);
	load_to_clip.parent.f(load_to_clip);
}

//-------Базовый класс
public var a:MovieClip;

public function f(mc):void{
	mc.getChildAt(0).t.stop();
	//a.getChildAt(0).t.stop();//не срабатывает.
}
load_to_clip - это ссылка на клип а, переданная в класс. При успешной загрузке из базового класса вызывается функция f(). mc и a это один и тот же объект, почему же код не срабатывает?
__________________
Пора бы мне уже умнеть..

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

Регистрация: Sep 2002
Сообщений: 30,787
«a.getChildAt(0).t» — что это?

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

Регистрация: Jul 2005
Сообщений: 304
Отправить сообщение для Ноябрь с помощью ICQ
t это instance name клипа, который находится в подгружаемом swf файле
__________________
Пора бы мне уже умнеть..


Последний раз редактировалось Ноябрь; 28.03.2008 в 18:48.
Старый 28.03.2008, 18:58
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Это за вас компилятор CS3 клепает подобные ссылки. В AS3 избегайте подобных обращений и используйте getChildByName. Иначе потом будет очень грустно.

А код вообще надо переписать начисто, на основе примеров в хелпе по Loader.

Старый 28.03.2008, 19:40
Ноябрь вне форума Посмотреть профиль Отправить личное сообщение для Ноябрь Посетить домашнюю страницу Ноябрь Найти все сообщения от Ноябрь
  № 8  
Ответить с цитированием
Ноябрь
 
Аватар для Ноябрь

Регистрация: Jul 2005
Сообщений: 304
Отправить сообщение для Ноябрь с помощью ICQ
Цитата:
используйте getChildByName
Хорошо..,
Код:
a.getChildAt(0).getChildByName("t").stop();
но так тоже не работает.
Цитата:
на основе примеров в хелпе по Loader
мой код очень похож на пример из хелпа по классу Loader..

Document class:
Код:
package main {
	import flash.display.Sprite;
	import main.loader.LoaderWithClip;
	import flash.display.MovieClip;
	
	public class Index extends Sprite{
		public var a:MovieClip;
		
		public function Index(){
			a = new MovieClip();
			addChild(a);

			var prl = new LoaderWithClip();
			prl.load_to(a);
			prl.from('main/loader/testload.swf');
			prl.load_go();
		}
		
		public function f(mc):void{
			//mc.getChildAt(0).getChildByName("t").stop();//остановка срабатывает
			//a.getChildAt(0).getChildByName("t").stop();//не срабатывает
			trace(mc==a);//true
			trace(mc===a);//true
		}
	}
}
класс LoaderWithClip
Код:
package main.loader {
	import flash.display.Loader;
	import flash.display.LoaderInfo;
	import flash.net.URLRequest;
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import flash.events.Event;
	
	public class LoaderWithClip extends MovieClip{
		
		public var load_to_clip:*;
		public var url:URLRequest;
		public var general_loader:Loader;
		
		public function LoaderWithClip(){
			general_loader = new Loader();

		}
		
		public function load_to(mc:*):void{
			load_to_clip = mc;
		}
		
		public function from(url_str:String):void{
			url = new URLRequest(url_str);
		}
		
		public function load_go():void{
			general_loader.load(url);
			general_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onload);
		}
		
		private function onload(e:Event){
			load_to_clip.addChild(e.target.content as MovieClip);
			load_to_clip.parent.f(load_to_clip);
		}
		
	}
	
}
__________________
Пора бы мне уже умнеть..

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

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

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


 


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


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