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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 08.10.2007, 20:25
Mr. Fixit вне форума Посмотреть профиль Найти все сообщения от Mr. Fixit
  № 1  
Ответить с цитированием
Mr. Fixit
Banned
[+1 08.05.08]
[+4 14.04.08]
[+1.3 02.05.08]

Регистрация: Oct 2006
Адрес: кагбэ Киеф!!1
Сообщений: 1,473
Post eval in as 2.0

чем же заменить eval в этом классе, что бы работал код...
this[""] - не помогает.

Код:
import mx.utils.Delegate;

class SlideShow {
	private var randomNum = 0;
	private var randomNumLast = 0;
	var container_mc;
	var watcher_mc;
	var images_xml:XML;
	var imageArray:Array;
	var timerInterval:Number;
	var thisLoader;
	var numPause:Number;
	var order:String;
	var looping:String;
	var fadetime:Number;
	
	function SlideShow () {
		container_mc = _level0.createEmptyMovieClip ("container", 0);
		container_mc.createEmptyMovieClip ("loader1_mc",2);
		container_mc.createEmptyMovieClip ("loader2_mc",1);
		watcher_mc = _level0.createEmptyMovieClip ("watcher_mc", 100);

		images_xml = new XML ();
		images_xml.ignoreWhite = true;
		images_xml.onLoad = Delegate.create (this, parse);
		images_xml.load ("images.xml");
	}
	

	function parse () {
		imageArray = new Array ();
		var root = getNode (images_xml);

		numPause = Number (getNode (images_xml).attributes.timer * 1000);
		order = getNode (images_xml).attributes.order;
		looping = getNode (images_xml).attributes.looping;
		fadetime = Number (getNode (images_xml).attributes.fadetime);


		var imageNode = root.lastChild;
		while (imageNode.nodeName != null) {
			var imageData = new Object ();
			imageData.path = imageNode.attributes.path;
			imageArray.push (imageData);
			imageNode = imageNode.previousSibling;

		}
		container_mc._x = 50;
		container_mc._y = 50;
		imageArray.reverse ();
		imageGen (imageArray);
	}

	// depth swapping
	function swapPlace (clip, num) {
		eval (clip).swapDepths (eval ("container_mc.loader" + num + "_mc"));

	}

	function loadImages (data, num) {
		var i;
		if (i == undefined || i == 2) {
			i = 2;
			createLoader (i,data,num);
			i = 1;
		} else if (i == 1) {
			createLoader (i,data,num);
			i = 2;
		}
	}
	
	function createLoader (i, data, num) {

		thisLoader = eval ("container_mc.loader" + i + "_mc");
		trace (thisLoader); // UNDEFINED
		
		
		thisLoader._alpha = 0;
		thisLoader.loadMovie (data[num].path);
		watcher_mc.onEnterFrame = function () {
			var picLoaded = thisLoader.getBytesLoaded ();
			var picBytes = thisLoader.getBytesTotal ();
			if (isNaN (picBytes) || picBytes < 4) {
				return;
			}
			if (picLoaded / picBytes >= 1) {
				swapPlace ("container_mc.loader2_mc",1);
				var alphaTween:Object = new mx.transitions.Tween (thisLoader, "_alpha", mx.transitions.easing.Regular.easeOut, 0, 100, fadetime, true);
				timerInterval = setInterval (imageGen, numPause, data);
				delete this.onEnterFrame;
			}
		};
	}
	function imageGen (data) {
		var p:Number;
		if (p == undefined || p == data.length && looping == "yes") {
			p = 0;
		} else {
			break;
		}
		loadImages (data,p);

		p++;
		clearInterval (timerInterval);
	}


	function getNode (xml:XML):XMLNode {
		var node:XMLNode = xml.firstChild;
		for (var i:Number = 1; i < arguments.length; i++) {
			node = node.childNodes[arguments[i]];
		}
		return node;
	}

}

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
А зачем тут eval?
Код:
function swapPlace (clip, num) {
	eval (clip).swapDepths (eval ("container_mc.loader" + num + "_mc"));
}
...
swapPlace ("container_mc.loader2_mc",1);
Почему не передавать ссылку на клип, вместо строки?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 08.10.2007, 20:56
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 3  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Код:
container_mc["loader" + num + "_mc"];
а вообще конечно, ссылку передавай


Последний раз редактировалось Kikasso; 08.10.2007 в 20:59.
Старый 09.10.2007, 11:49
Mr. Fixit вне форума Посмотреть профиль Найти все сообщения от Mr. Fixit
  № 4  
Ответить с цитированием
Mr. Fixit
Banned
[+1 08.05.08]
[+4 14.04.08]
[+1.3 02.05.08]

Регистрация: Oct 2006
Адрес: кагбэ Киеф!!1
Сообщений: 1,473
вообще убрал передачу параметров, зачем они нужны?
Код:
function swapPlace () {
	container_mc["loader2_mc"].swapDepths (container_mc["loader1_mc"]);
}
...
swapPlace ();

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

Регистрация: Sep 2002
Сообщений: 30,787
А с чего ты взял, что именно container_mc нужен? И что будет именно loader2_mc? Функция должна выполнять свою задачу для любых двух клипов, а не для определенных.

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

Регистрация: Oct 2006
Адрес: кагбэ Киеф!!1
Сообщений: 1,473
в даном случае мне только container_mc и нужен, И будет именно loader2_mc

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

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

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

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

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


 


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


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