Flashingback
%Europe/Berlin %791 %2005, 19:59
Zo nadat roenes me ff op men gemak heeft gesteld ga ik hier ook maar is een topic starten.
Ik had eerst een smilley systeempje gemaakt in AS1.0 en nu ik me wat ben gaan bezig houden met AS2.0 heb ik hem omgezet naar AS2.0 .
dit is em.
class Smilley {
private var root:MovieClip;
private var textfield:String;
private var textstring:String;
public function Smilley(root, textfield, loadstring) {
var textstring:String = loadstring.split("\n").join(" \n").split(":)").join(" :) ").split(":D").join(" :D ");
this.root = root;
this.textfield = textfield;
this.textstring = textstring;
smilleyReplace(":D", "mc_smilley");
smilleyReplace(":)", "mc_smilley2");
}
private function smilleyReplace(smilley:String, smilleyMc:String) {
var splitSpatie:Array = textstring.split(" ");
var totalSpaties:Number = splitSpatie.length;
var lastTxtHeight:Number = 0;
var slicedArray:Array = Array();
var regelsArray:Array = Array();
var totalSmilleys:Number = 0;
var fontSpec:TextFormat = new TextFormat();
// hier kan je de font gegevens aanpassen
fontSpec.size = 14;
fontSpec.font = "Arial";
fontSpec.leading = 2;
//
for (var s = totalSpaties; s>=0; s--) {
var txtSliced:String = splitSpatie.slice(0, s).join(" ");
var txtHeight:Number = fontSpec.getTextExtent(txtSliced, 400).textFieldHeight;
if (txtHeight != LastTxtHeight) {
var LastTxtHeight:Number = txtHeight;
slicedArray.push(txtSliced);
}
}
slicedArray.reverse();
var totalSlices:Number = slicedArray.length;
for (var r = 0; r<=totalSlices; r++) {
var oneSliceBack:String = slicedArray.slice(r-1, r).join("");
var txtRegels:String = slicedArray.slice(r, r+1).join("").split(oneSliceBack).join("").split("\n").join("");
if (r != 1) {
regelsArray.push(txtRegels.slice(1, txtRegels.length));
} else {
regelsArray.push(txtRegels);
}
var propertiesTxt = fontSpec.getTextExtent("tekst om hoogte te specificieren");
var rHeight:Number = propertiesTxt.textFieldHeight-4;
var totalSmilleysR:Number = regelsArray[r].split(smilley).length-1;
if (totalSmilleysR>0) {
totalSmilleys++;
var smilleysR:Array = regelsArray[r].split(smilley);
for (var i = 1; i<=smilleysR.length-1; i++) {
var smilleysMcs:MovieClip = root.attachMovie(smilleyMc, smilleyMc+i, totalSmilleys+root.getNextHighestDepth());
smilleysMcs._y = (rHeight*r)-smilleysMcs._height;
smilleysMcs._x = fontSpec.getTextExtent(smilleysR.slice(0, i).join(" ")).textFieldWidth;
}
}
}
root[textfield] = textstring;
}
}
en op deze manier roep ik em aan in de fla
new Smilley(this,txt_bericht,"hier komt tekst :)")
Ik weet niet of dit allemaal al perfect OOP is maar ik hoor het graag als er dingen beter kunnen.
Ik had eerst een smilley systeempje gemaakt in AS1.0 en nu ik me wat ben gaan bezig houden met AS2.0 heb ik hem omgezet naar AS2.0 .
dit is em.
class Smilley {
private var root:MovieClip;
private var textfield:String;
private var textstring:String;
public function Smilley(root, textfield, loadstring) {
var textstring:String = loadstring.split("\n").join(" \n").split(":)").join(" :) ").split(":D").join(" :D ");
this.root = root;
this.textfield = textfield;
this.textstring = textstring;
smilleyReplace(":D", "mc_smilley");
smilleyReplace(":)", "mc_smilley2");
}
private function smilleyReplace(smilley:String, smilleyMc:String) {
var splitSpatie:Array = textstring.split(" ");
var totalSpaties:Number = splitSpatie.length;
var lastTxtHeight:Number = 0;
var slicedArray:Array = Array();
var regelsArray:Array = Array();
var totalSmilleys:Number = 0;
var fontSpec:TextFormat = new TextFormat();
// hier kan je de font gegevens aanpassen
fontSpec.size = 14;
fontSpec.font = "Arial";
fontSpec.leading = 2;
//
for (var s = totalSpaties; s>=0; s--) {
var txtSliced:String = splitSpatie.slice(0, s).join(" ");
var txtHeight:Number = fontSpec.getTextExtent(txtSliced, 400).textFieldHeight;
if (txtHeight != LastTxtHeight) {
var LastTxtHeight:Number = txtHeight;
slicedArray.push(txtSliced);
}
}
slicedArray.reverse();
var totalSlices:Number = slicedArray.length;
for (var r = 0; r<=totalSlices; r++) {
var oneSliceBack:String = slicedArray.slice(r-1, r).join("");
var txtRegels:String = slicedArray.slice(r, r+1).join("").split(oneSliceBack).join("").split("\n").join("");
if (r != 1) {
regelsArray.push(txtRegels.slice(1, txtRegels.length));
} else {
regelsArray.push(txtRegels);
}
var propertiesTxt = fontSpec.getTextExtent("tekst om hoogte te specificieren");
var rHeight:Number = propertiesTxt.textFieldHeight-4;
var totalSmilleysR:Number = regelsArray[r].split(smilley).length-1;
if (totalSmilleysR>0) {
totalSmilleys++;
var smilleysR:Array = regelsArray[r].split(smilley);
for (var i = 1; i<=smilleysR.length-1; i++) {
var smilleysMcs:MovieClip = root.attachMovie(smilleyMc, smilleyMc+i, totalSmilleys+root.getNextHighestDepth());
smilleysMcs._y = (rHeight*r)-smilleysMcs._height;
smilleysMcs._x = fontSpec.getTextExtent(smilleysR.slice(0, i).join(" ")).textFieldWidth;
}
}
}
root[textfield] = textstring;
}
}
en op deze manier roep ik em aan in de fla
new Smilley(this,txt_bericht,"hier komt tekst :)")
Ik weet niet of dit allemaal al perfect OOP is maar ik hoor het graag als er dingen beter kunnen.