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

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

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

Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
По умолчанию Интересное поведение после загрузке свф файла с подключённым классом

Пишем класс:

Код:
import flash.display.BitmapData;

class TestClass extends MovieClip {
	public function TestClass (){
		trace ('class2');
		var mc:MovieClip = this.createEmptyMovieClip("mc_1", 1);
    	var mc:MovieClip = this.createEmptyMovieClip("mc_1", 1);
    	mc.beginFill(0x00CC00);
    	mc.lineTo(0, 50);
    	mc.lineTo(40, 50);
    	mc.lineTo(40, 0);
    	mc.lineTo(0, 0);
	}
}
В linkage мувиклипа прописываем его, далее компилим. Обзываем полученный свф файл "empty1";

далее видоизменяем класс:
Код:
import flash.display.BitmapData;

class TestClass extends MovieClip {
	public function TestClass (){
		trace ('class2');
		var mc:MovieClip = this.createEmptyMovieClip("mc_1", 1);
    	var mc:MovieClip = this.createEmptyMovieClip("mc_1", 1);
    	mc.beginFill(0xCC3300);
    	mc.lineTo(0, 50);
    	mc.lineTo(40, 50);
    	mc.lineTo(40, 0);
    	mc.lineTo(0, 0);
	}
}
прописываем его в linkage другого мувиклипа другого документа, компилим. Обзываем "empty2";


Имеем два свф файла, тыкаем на "empty1" получаем прямоугольник одного цвета, тыкаем на "empty2" получаем прямоугольник другого цвета.

Теперь самое интересное, загружаем в общий документ сначало один свф потом при желании пытаемся загрузить второй свф.

Код:
import mx.utils.Delegate;

var mcloader:MovieClipLoader = new MovieClipLoader ();



this.btn1_mc.onRelease = Delegate.create (this, this.load1);
this.btn2_mc.onRelease = Delegate.create (this, this.load2);

_root.createEmptyMovieClip('content_mc', 1);


function load1 ():Void {
	trace ('1');
	mcloader.loadClip('empty1.swf', this.content_mc);
}

function load2 ():Void {
	trace ('2');
	mcloader.loadClip('empty2.swf', this.content_mc);
}
Результат:
Если сначало был загружен первый то при попытке загрузит свф номер два грузится снова первый, если сначало загружаем второй то следовательно при попытке вызвать свф намба ван опять загружается намба ту.

Кто-нибудь объясните почему так происходит, не одно моё соображение не подаётся никакой логике.
Вложения
Тип файла: rar exmpl.rar (2.0 Кб, 62 просмотров)
__________________
Free-lance | Twitter | Me

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

Регистрация: Sep 2002
Сообщений: 30,784
А fla положить? Сваял три свфки, скрыл внутренности и теперь как хочешь, так и смотри.

Старый 15.09.2007, 14:20
screamge вне форума Посмотреть профиль Отправить личное сообщение для screamge Посетить домашнюю страницу screamge Найти все сообщения от screamge
  № 3  
Ответить с цитированием
screamge
Ветеран форума
 
Аватар для screamge

Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
Код во флашках ничем не отличаются от приведённого кода, прикол именно в последовательности действий.
Вложения
Тип файла: rar fla.rar (14.6 Кб, 63 просмотров)
__________________
Free-lance | Twitter | Me

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

Регистрация: Sep 2002
Сообщений: 30,784
Это все очень просто объясняется тем, что идет проверка if (!_global.TestClass)

Код:
import mx.utils.Delegate;

var mcloader:MovieClipLoader = new MovieClipLoader ();



this.btn1_mc.onRelease = Delegate.create (this, this.load1);
this.btn2_mc.onRelease = Delegate.create (this, this.load2);

_root.createEmptyMovieClip('content_mc', 1);


function load1 ():Void {
	trace ('1');
    delete _global.TestClass;
	mcloader.loadClip('empty1.swf', this.content_mc);
}

function load2 ():Void {
	trace ('2');
    delete _global.TestClass;
	mcloader.loadClip('empty2.swf', this.content_mc);
}

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

Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
Что-то до меня не особо доходит кто осуществляет эту проверку, сама идея этого действия интересна и не понятна. Если не сложно __etc, объясни.
__________________
Free-lance | Twitter | Me

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Открой свой код в asv и включи режим просмотра в AS1.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Sep 2002
Сообщений: 30,784
Это все результат того, что AS2 транслируется в AS1.

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

Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
понятно, спасибо.
__________________
Free-lance | Twitter | Me

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

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

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


 


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


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