Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Поменять местами значения двух переменных (http://www.flasher.ru/forum/showthread.php?t=171089)

Ookami 08.11.2011 17:07

Поменять местами значения двух переменных
 
Собственно, вопрос в том как это сделать? Есть ли штатные средства?

Genzo 08.11.2011 17:13

Школьная задачка))
Какой тип переменных?

iNils 08.11.2011 17:14

Код AS3:

var a:int = 5;
var b:int = 6;
var c:int;
c = a;
a = b;
b = c;


gloomyBrain 08.11.2011 17:15

либо через третью переменную
Код AS3:

var a:String = "Hello";
var b:String = "World";
var temp:String = a;
 
a = b;
b = temp;

либо (только для целых чисел!) с помощью xor
Код AS3:

var a:int = 10;
var b:int = 20;
 
a ^= b;
b ^= a;
a ^= b;


Ookami 08.11.2011 17:18

с простыми типами данных все понятно. интересует класс MovieClip

Genzo 08.11.2011 17:19

Цитата:

либо (только для целых чисел!) с помощью xor
не проще ли ?
Код AS3:

var a:int = 10;
var b:int = 20;
 
b = a + b; // 10 + 20
a = b - a; // 30 - 10
b = b - a; // 20 - 10


Ookami 08.11.2011 17:25

Genzo кстати да, классическое решение для чисел =) Олимпиадная задача для 10-11 классов

goodguy 08.11.2011 17:25

Цитата:

с простыми типами данных все понятно. интересует класс MovieClip
Никогда не задвался такой целью ) Но можно (наверное) через временные переменные

Код AS3:

private var _firstVar:MovieClip = new MovieClip();
private var _secondVar:MovieClip = new MovieClip();
 
private function interplace():void {
      var temp1:MovieClip = _secondVar;
      var temp2:MovieClip = _firstVar;
      _firstVar    = temp1;
      _secondVar = temp2;
}

Не знаю как эта хрень будет работать ) Но можно попробовать

gloomyBrain 08.11.2011 17:28

@Genzo
По идее битовый сдвиг должен быть быстрее. А так - есть всего 2 варианта - либо математика для чисел, либо временная переменная для всего

Genzo 08.11.2011 17:58

Цитата:

А так - есть всего 2 варианта
как как насчет заморочиться через memmove ?


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

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