Загадка по ActionScript 2.0

Загадка від Іллі Паніна:

Маємо:

1. Клас, ActionScript 2.0:

class fleas.puzzles.OneMore
{
	public var link:String;
	public function OneMore(_url:String)
	{
		link = _url;
	}
}

2. Код:

import fleas.puzzles.OneMore;
var flea:OneMore = new OneMore('megaurl.com');
trace(flea.link);

Що буде в output?

В output буде шлях до Вашої swf, так як _root є ланкою в ланцюзі видимості для всіх об’єктів, та в нього є змінна _url (так як він є MovieClip-ом).

Таґи: , ,

Коментарів: 6 to “Загадка по ActionScript 2.0”

  1. 7thsky:

    Так на первый взгляд _url аппликации, ну то есть _root._url

  2. Pirrest:

    Так! Вірно!

  3. Ро:

    Так ото нехфиг предопредельонние переменние пользувать :)

  4. Pirrest:

    Так-то-так, але це теж не гарно, коли такий параметр я можу узяти тільки за допомогою arguments. Але ж і те вірно, що зараз усі скарги в бік ActionScript 2.0 дільки від любові до нього, тепер все терпить старший брат 3.0.

  5. Sergeyev:

    ну так именовать передаваемые параметры, это грабли искать самому.

    кстати, обнаружил в исходниках, чужих, такое дело:

    xml.load(_root._url, “POST”);

    отлично грузирась xml-ка, все работало.
    Я через пару часов ковыряний выяснил, в чем дело.

    Догадаешься?:)

  6. Pirrest:

    Гарна загадка! :)
    Витратив 20 хвилин :)
    Спочатку вважав, що винен _lockroot.
    Але тести довели, що це не так.

    Після дейких міркувань, я зміг зробити, щоб такий код працював. Змінну _url змінити не можливо, але можливо перезаписати _root :)

    this._root = {};
    _root._url = “temp.xml”;
    var xml:XML = new XML();
    this.xml.load(_root._url);

    Не зрозумів тільки, навіщо “POST”. У метода load немає такого параметру.

    Дякую!

Залиште свій коментар