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

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

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

Регистрация: Apr 2009
Сообщений: 17
Question Помогите разобраться с embed swf

Есть такой код:
Код AS3:
package ru.alice {
 
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import flash.utils.getDefinitionByName;
 
public class Symbols extends MovieClip
	{
 
		[Embed(source="../../../bin/games/game1/sym/regular/fall/0.swf", mimeType="application/octet-stream")]
		public const game1RF0:Class;
 
		[Embed(source="../../../bin/games/game1/sym/regular/fall/1.swf",mimeType="application/octet-stream")]
		public const game1RF1:Class;
 
		[Embed(source="../../../bin/games/game1/sym/regular/fall/2.swf",mimeType="application/octet-stream")]
		public const game1RF2:Class;
 
//тут много-много embed кода
 
public function Symbols()
		{
 
		}
 
public function getAsset2(n:String):Sprite
		{
			var ClassReference:Class = getDefinitionByName(this[n]) as Class;
			var s:Sprite = new Sprite();
			var m:MovieClip = new ClassReference() as MovieClip;
			s.addChild(m);
			return s;
 
		}
 
	}
 
}
Он компилируется в отдельный swf и подгружается в основной программе:
Код AS3:
 
myAppDomain = new ApplicationDomain();
var context:LoaderContext = new LoaderContext(false, this.myAppDomain);
var my_Loader:Loader = new Loader();
var my_url:URLRequest = new URLRequest("Symbols.swf");
my_Loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadingHandler);
my_Loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
my_Loader.load(my_url, context);
 
//....
 
private function loadingHandler(e:Event):void
{
var ClassDefinition:Class = this.myAppDomain.getDefinition("ru.alice.Symbols") as Class;
smbc = new ClassDefinition(); //тут в отладчике видно, что файл загрузился,весь embed есть.
var mc = smbc.getAsset2("game1RF0") //тут ошибка №1065
}
При попытке получить swf из по имени класса происходит ошибка:
Код:
ReferenceError: Error #1065: Переменная [class Symbols_game1RF0] не определена.
	at global/flash.utils::getDefinitionByName()
	at ru.alice::Symbols/getAsset2()
	at ru.alice::Spin3/loadingHandler()[K:\FD\Projects\ALiCEv2\src\ru\alice\Spin3.as:153]
Использую FlashDevelop.
"../../../bin/games/game1/sym/regular/fall/0.swf" - это мувик с элементами AS3.
"game1RF0" - получается в процессе работы программы, типа "имя_игры" + "режим1" + "режим2" + "№ ресурса".

Вопрос, что я делаю не так, и как сделать так, чтобы оно работало?

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

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

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


 


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


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