Загадка по 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-ом).
Таґи: ActionScrip 2.0, _root, _url
Грудень 25, 2007 в 12:05
Так на первый взгляд _url аппликации, ну то есть _root._url
Грудень 25, 2007 в 12:31
Так! Вірно!
Січень 11, 2008 в 19:46
Так ото нехфиг предопредельонние переменние пользувать
Січень 11, 2008 в 20:41
Так-то-так, але це теж не гарно, коли такий параметр я можу узяти тільки за допомогою arguments. Але ж і те вірно, що зараз усі скарги в бік ActionScript 2.0 дільки від любові до нього, тепер все терпить старший брат 3.0.
Січень 15, 2008 в 14:14
ну так именовать передаваемые параметры, это грабли искать самому.
кстати, обнаружил в исходниках, чужих, такое дело:
xml.load(_root._url, “POST”);
отлично грузирась xml-ка, все работало.
Я через пару часов ковыряний выяснил, в чем дело.
Догадаешься?:)
Січень 16, 2008 в 13:55
Гарна загадка!

Витратив 20 хвилин
Спочатку вважав, що винен _lockroot.
Але тести довели, що це не так.
Після дейких міркувань, я зміг зробити, щоб такий код працював. Змінну _url змінити не можливо, але можливо перезаписати _root
this._root = {};
_root._url = “temp.xml”;
var xml:XML = new XML();
this.xml.load(_root._url);
Не зрозумів тільки, навіщо “POST”. У метода load немає такого параметру.
Дякую!