Загадка по 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 в %I:%M %p
Так на первый взгляд _url аппликации, ну то есть _root._url
25, 2007 в %I:%M %p
Так! Вірно!
11, 2008 в %I:%M %p
Так ото нехфиг предопредельонние переменние пользувать :)
11, 2008 в %I:%M %p
Так-то-так, але це теж не гарно, коли такий параметр я можу узяти тільки за допомогою arguments. Але ж і те вірно, що зараз усі скарги в бік ActionScript 2.0 дільки від любові до нього, тепер все терпить старший брат 3.0.
15, 2008 в %I:%M %p
ну так именовать передаваемые параметры, это грабли искать самому.
кстати, обнаружил в исходниках, чужих, такое дело:
xml.load(_root._url, “POST”);
отлично грузирась xml-ка, все работало.
Я через пару часов ковыряний выяснил, в чем дело.
Догадаешься?:)
16, 2008 в %I:%M %p
Гарна загадка! :)
Витратив 20 хвилин :)
Спочатку вважав, що винен _lockroot.
Але тести довели, що це не так.
Після дейких міркувань, я зміг зробити, щоб такий код працював. Змінну _url змінити не можливо, але можливо перезаписати _root :)
this._root = {};
_root._url = “temp.xml”;
var xml:XML = new XML();
this.xml.load(_root._url);
Не зрозумів тільки, навіщо “POST”. У метода load немає такого параметру.
Дякую!